22#ifndef AUTH_ACLS_INCLUDED
23#define AUTH_ACLS_INCLUDED
26#include <unordered_map>
32#define SELECT_ACL (1L << 0)
33#define INSERT_ACL (1L << 1)
34#define UPDATE_ACL (1L << 2)
35#define DELETE_ACL (1L << 3)
36#define CREATE_ACL (1L << 4)
37#define DROP_ACL (1L << 5)
38#define RELOAD_ACL (1L << 6)
39#define SHUTDOWN_ACL (1L << 7)
40#define PROCESS_ACL (1L << 8)
41#define FILE_ACL (1L << 9)
60#define GRANT_ACL (1L << 10)
61#define REFERENCES_ACL (1L << 11)
62#define INDEX_ACL (1L << 12)
63#define ALTER_ACL (1L << 13)
64#define SHOW_DB_ACL (1L << 14)
65#define SUPER_ACL (1L << 15)
66#define CREATE_TMP_ACL (1L << 16)
67#define LOCK_TABLES_ACL (1L << 17)
68#define EXECUTE_ACL (1L << 18)
69#define REPL_SLAVE_ACL (1L << 19)
70#define REPL_CLIENT_ACL (1L << 20)
71#define CREATE_VIEW_ACL (1L << 21)
72#define SHOW_VIEW_ACL (1L << 22)
73#define CREATE_PROC_ACL (1L << 23)
74#define ALTER_PROC_ACL (1L << 24)
75#define CREATE_USER_ACL (1L << 25)
76#define EVENT_ACL (1L << 26)
77#define TRIGGER_ACL (1L << 27)
78#define CREATE_TABLESPACE_ACL (1L << 28)
79#define CREATE_ROLE_ACL (1L << 29)
80#define DROP_ROLE_ACL (1L << 30)
91#define NO_ACCESS (1L << 31)
99 (UPDATE_ACL | SELECT_ACL | INSERT_ACL | DELETE_ACL | CREATE_ACL | DROP_ACL | \
100 REFERENCES_ACL | INDEX_ACL | ALTER_ACL | CREATE_TMP_ACL | LOCK_TABLES_ACL | \
101 EXECUTE_ACL | CREATE_VIEW_ACL | SHOW_VIEW_ACL | CREATE_PROC_ACL | \
102 ALTER_PROC_ACL | EVENT_ACL | TRIGGER_ACL)
109#define TABLE_OP_ACLS \
110 (SELECT_ACL | INSERT_ACL | UPDATE_ACL | DELETE_ACL | CREATE_ACL | DROP_ACL | \
111 REFERENCES_ACL | INDEX_ACL | ALTER_ACL | CREATE_VIEW_ACL | SHOW_VIEW_ACL | \
119#define PROC_OP_ACLS (ALTER_PROC_ACL | EXECUTE_ACL)
125#define DB_ACLS (DB_OP_ACLS | GRANT_ACL)
132#define TABLE_ACLS (TABLE_OP_ACLS | GRANT_ACL)
138#define COL_ACLS (SELECT_ACL | INSERT_ACL | UPDATE_ACL | REFERENCES_ACL)
145#define PROC_ACLS (PROC_OP_ACLS | GRANT_ACL)
150#define SHOW_PROC_ACLS (PROC_OP_ACLS | CREATE_PROC_ACL)
157 (SELECT_ACL | INSERT_ACL | UPDATE_ACL | DELETE_ACL | CREATE_ACL | DROP_ACL | \
158 RELOAD_ACL | SHUTDOWN_ACL | PROCESS_ACL | FILE_ACL | GRANT_ACL | \
159 REFERENCES_ACL | INDEX_ACL | ALTER_ACL | SHOW_DB_ACL | SUPER_ACL | \
160 CREATE_TMP_ACL | LOCK_TABLES_ACL | REPL_SLAVE_ACL | REPL_CLIENT_ACL | \
161 EXECUTE_ACL | CREATE_VIEW_ACL | SHOW_VIEW_ACL | CREATE_PROC_ACL | \
162 ALTER_PROC_ACL | CREATE_USER_ACL | EVENT_ACL | TRIGGER_ACL | \
163 CREATE_TABLESPACE_ACL | CREATE_ROLE_ACL | DROP_ROLE_ACL)
165#define DEFAULT_CREATE_PROC_ACLS (ALTER_PROC_ACL | EXECUTE_ACL)
171#define TMP_TABLE_ACLS \
172 (SELECT_ACL | INSERT_ACL | UPDATE_ACL | DELETE_ACL | CREATE_ACL | DROP_ACL | \
173 INDEX_ACL | ALTER_ACL)
182 (SELECT_ACL | INSERT_ACL | UPDATE_ACL | DELETE_ACL | CREATE_ACL | DROP_ACL)
183#define DB_CHUNK1 (GRANT_ACL | REFERENCES_ACL | INDEX_ACL | ALTER_ACL)
184#define DB_CHUNK2 (CREATE_TMP_ACL | LOCK_TABLES_ACL)
186 (CREATE_VIEW_ACL | SHOW_VIEW_ACL | CREATE_PROC_ACL | ALTER_PROC_ACL)
187#define DB_CHUNK4 (EXECUTE_ACL)
188#define DB_CHUNK5 (EVENT_ACL | TRIGGER_ACL)
190#define fix_rights_for_db(A) \
191 (((A)&DB_CHUNK0) | (((A) << 4) & DB_CHUNK1) | (((A) << 6) & DB_CHUNK2) | \
192 (((A) << 9) & DB_CHUNK3) | (((A) << 2) & DB_CHUNK4)) | \
193 (((A) << 9) & DB_CHUNK5)
194#define get_rights_for_db(A) \
195 (((A)&DB_CHUNK0) | (((A)&DB_CHUNK1) >> 4) | (((A)&DB_CHUNK2) >> 6) | \
196 (((A)&DB_CHUNK3) >> 9) | (((A)&DB_CHUNK4) >> 2)) | \
197 (((A)&DB_CHUNK5) >> 9)
198#define TBL_CHUNK0 DB_CHUNK0
199#define TBL_CHUNK1 DB_CHUNK1
200#define TBL_CHUNK2 (CREATE_VIEW_ACL | SHOW_VIEW_ACL)
201#define TBL_CHUNK3 TRIGGER_ACL
202#define fix_rights_for_table(A) \
203 (((A)&TBL_CHUNK0) | (((A) << 4) & TBL_CHUNK1) | (((A) << 11) & TBL_CHUNK2) | \
204 (((A) << 15) & TBL_CHUNK3))
205#define get_rights_for_table(A) \
206 (((A)&TBL_CHUNK0) | (((A)&TBL_CHUNK1) >> 4) | (((A)&TBL_CHUNK2) >> 11) | \
207 (((A)&TBL_CHUNK3) >> 15))
208#define fix_rights_for_column(A) (((A)&7) | (((A) & ~7) << 8))
209#define get_rights_for_column(A) (((A)&7) | ((A) >> 8))
210#define fix_rights_for_procedure(A) \
211 ((((A) << 18) & EXECUTE_ACL) | (((A) << 23) & ALTER_PROC_ACL) | \
212 (((A) << 8) & GRANT_ACL))
213#define get_rights_for_procedure(A) \
214 ((((A)&EXECUTE_ACL) >> 18) | (((A)&ALTER_PROC_ACL) >> 23) | \
215 (((A)&GRANT_ACL) >> 8))
const std::unordered_map< std::string, int > global_acls_map
Bitmap offsets for static privileges.
Definition: auth_acls.cc:95
const std::vector< std::string > global_acls_vector
Consts for static privileges.
Definition: auth_acls.cc:61