Skip to content

Commit 5a25e26

Browse files
committed
Bug #19629959 M_I_DB: ROOT USER IS MISSING THE CREATE_TABLESPACE PRIVILEGE
Merged cset 8876 from trunk
1 parent 7aeb2f0 commit 5a25e26

File tree

7 files changed

+246
-218
lines changed

7 files changed

+246
-218
lines changed

client/CMakeLists.txt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# Copyright (c) 2006, 2013, Oracle and/or its affiliates. All rights reserved.
1+
# Copyright (c) 2006, 2014, Oracle and/or its affiliates. All rights reserved.
22
#
33
# This program is free software; you can redistribute it and/or modify
44
# it under the terms of the GNU General Public License as published by
@@ -22,6 +22,7 @@ INCLUDE_DIRECTORIES(
2222
${CMAKE_SOURCE_DIR}/libmysql
2323
${CMAKE_SOURCE_DIR}/regex
2424
${CMAKE_SOURCE_DIR}/sql
25+
${CMAKE_SOURCE_DIR}/sql/auth
2526
${CMAKE_SOURCE_DIR}/strings
2627
${EDITLINE_INCLUDE_DIR}
2728
${CMAKE_CURRENT_BINARY_DIR}

client/auth_utils.h

Lines changed: 61 additions & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,8 @@
2020
#include <iostream>
2121
#include <map>
2222

23+
#include <auth_acls.h>
24+
2325
#define ERR_FILE 1 // File related error
2426
#define ERR_ENCRYPTION 2 // Encryption related error
2527
#define ERR_SYNTAX 3 // Syntax and parsing related error
@@ -64,65 +66,65 @@ class Access_privilege
6466
Access_privilege() : m_priv(0) {}
6567
Access_privilege(uint64_t privileges) : m_priv(privileges) {}
6668
Access_privilege(const Access_privilege &priv) : m_priv(priv.m_priv) {}
67-
bool has_select_ac() { return (m_priv & (1L)) > 0; }
68-
bool has_insert_ac() { return (m_priv & (1L << 1)) > 0; }
69-
bool has_update_ac() { return (m_priv & (1L << 2)) > 0; }
70-
bool has_delete_ac() { return (m_priv & (1L << 3)) > 0; }
71-
bool has_create_ac() { return (m_priv & (1L << 4)) > 0; }
72-
bool has_drop_ac() { return (m_priv & (1L << 5)) > 0; }
73-
bool has_relead_ac() { return (m_priv & (1L << 6)) > 0; }
74-
bool has_shutdown_ac() { return (m_priv & (1L << 7)) > 0; }
75-
bool has_process_ac() { return (m_priv & (1L << 8)) > 0; }
76-
bool has_file_ac() { return (m_priv & (1L << 9)) > 0; }
77-
bool has_grant_ac() { return (m_priv & (1L << 10)) > 0; }
78-
bool has_references_ac() { return (m_priv & (1L << 11)) > 0; }
79-
bool has_index_ac() { return (m_priv & (1L << 12)) > 0; }
80-
bool has_alter_ac() { return (m_priv & (1L << 13)) > 0; }
81-
bool has_show_db_ac() { return (m_priv & (1L << 14)) > 0; }
82-
bool has_super_ac() { return (m_priv & (1L << 15)) > 0; }
83-
bool has_create_tmp_ac() { return (m_priv & (1L << 16)) > 0; }
84-
bool has_lock_tables_ac() { return (m_priv & (1L << 17)) > 0; }
85-
bool has_execute_ac() { return (m_priv & (1L << 18)) > 0; }
86-
bool has_repl_slave_ac() { return (m_priv & (1L << 19)) > 0; }
87-
bool has_repl_client_ac() { return (m_priv & (1L << 20)) > 0; }
88-
bool has_create_view_ac() { return (m_priv & (1L << 21)) > 0; }
89-
bool has_show_view_ac() { return (m_priv & (1L << 22)) > 0; }
90-
bool has_create_proc_ac() { return (m_priv & (1L << 23)) > 0; }
91-
bool has_alter_proc_ac() { return (m_priv & (1L << 24)) > 0; }
92-
bool has_create_user_ac() { return (m_priv & (1L << 25)) > 0; }
93-
bool has_event_ac() { return (m_priv & (1L << 26)) > 0; }
94-
bool has_trigger_ac() { return (m_priv & (1L << 27)) > 0; }
95-
bool has_create_tablespace_ac() { return (m_priv & (1L << 28)) > 0; }
96-
inline static uint64_t select_ac() { return (1L); }
97-
inline uint64_t insert_ac() { return (1L << 1); }
98-
inline uint64_t update_ac() { return (1L << 2); }
99-
inline uint64_t delete_ac() { return (1L << 3); }
100-
inline static uint64_t create_ac() { return (1L << 4); }
101-
inline static uint64_t drop_ac() { return (1L << 5); }
102-
inline static uint64_t relead_ac() { return (1L << 6); }
103-
inline static uint64_t shutdown_ac() { return (1L << 7); }
104-
inline static uint64_t process_ac() { return (1L << 8); }
105-
inline static uint64_t file_ac() { return (1L << 9); }
106-
inline static uint64_t grant_ac() { return (1L << 10); }
107-
inline static uint64_t references_ac() { return (1L << 11); }
108-
inline static uint64_t index_ac() { return (1L << 12); }
109-
inline static uint64_t alter_ac() { return (1L << 13); }
110-
inline static uint64_t show_db_ac() { return (1L << 14); }
111-
inline static uint64_t super_ac() { return (1L << 15); }
112-
inline static uint64_t create_tmp_ac() { return (1L << 16); }
113-
inline static uint64_t lock_tables_ac() { return (1L << 17); }
114-
inline static uint64_t execute_ac() { return (1L << 18); }
115-
inline static uint64_t repl_slave_ac() { return (1L << 19); }
116-
inline static uint64_t repl_client_ac() { return (1L << 20); }
117-
inline static uint64_t create_view_ac() { return (1L << 21); }
118-
inline static uint64_t show_view_ac() { return (1L << 22); }
119-
inline static uint64_t create_proc_ac() { return (1L << 23); }
120-
inline static uint64_t alter_proc_ac() { return (1L << 24); }
121-
inline static uint64_t create_user_ac() { return (1L << 25); }
122-
inline static uint64_t event_ac() { return (1L << 26); }
123-
inline static uint64_t trigger_ac() { return (1L << 27); }
124-
inline static uint64_t create_tablespace_ac() { return (1L << 28); }
125-
inline static uint64_t acl_all() { return 0xfffffff; }
69+
bool has_select_ac() { return (m_priv & SELECT_ACL) > 0; }
70+
bool has_insert_ac() { return (m_priv & INSERT_ACL) > 0; }
71+
bool has_update_ac() { return (m_priv & UPDATE_ACL) > 0; }
72+
bool has_delete_ac() { return (m_priv & DELETE_ACL) > 0; }
73+
bool has_create_ac() { return (m_priv & CREATE_ACL) > 0; }
74+
bool has_drop_ac() { return (m_priv & DROP_ACL) > 0; }
75+
bool has_relead_ac() { return (m_priv & RELOAD_ACL) > 0; }
76+
bool has_shutdown_ac() { return (m_priv & SHUTDOWN_ACL) > 0; }
77+
bool has_process_ac() { return (m_priv & PROCESS_ACL) > 0; }
78+
bool has_file_ac() { return (m_priv & FILE_ACL) > 0; }
79+
bool has_grant_ac() { return (m_priv & GRANT_ACL) > 0; }
80+
bool has_references_ac() { return (m_priv & REFERENCES_ACL) > 0; }
81+
bool has_index_ac() { return (m_priv & INDEX_ACL) > 0; }
82+
bool has_alter_ac() { return (m_priv & ALTER_ACL) > 0; }
83+
bool has_show_db_ac() { return (m_priv & SHOW_DB_ACL) > 0; }
84+
bool has_super_ac() { return (m_priv & SUPER_ACL) > 0; }
85+
bool has_create_tmp_ac() { return (m_priv & CREATE_TMP_ACL) > 0; }
86+
bool has_lock_tables_ac() { return (m_priv & LOCK_TABLES_ACL) > 0; }
87+
bool has_execute_ac() { return (m_priv & EXECUTE_ACL) > 0; }
88+
bool has_repl_slave_ac() { return (m_priv & REPL_SLAVE_ACL) > 0; }
89+
bool has_repl_client_ac() { return (m_priv & REPL_CLIENT_ACL) > 0; }
90+
bool has_create_view_ac() { return (m_priv & CREATE_VIEW_ACL) > 0; }
91+
bool has_show_view_ac() { return (m_priv & SHOW_VIEW_ACL) > 0; }
92+
bool has_create_proc_ac() { return (m_priv & CREATE_PROC_ACL) > 0; }
93+
bool has_alter_proc_ac() { return (m_priv & ALTER_PROC_ACL) > 0; }
94+
bool has_create_user_ac() { return (m_priv & CREATE_USER_ACL) > 0; }
95+
bool has_event_ac() { return (m_priv & EVENT_ACL) > 0; }
96+
bool has_trigger_ac() { return (m_priv & TRIGGER_ACL) > 0; }
97+
bool has_create_tablespace_ac() { return (m_priv & CREATE_TABLESPACE_ACL) > 0; }
98+
inline static uint64_t select_ac() { return SELECT_ACL; }
99+
inline uint64_t insert_ac() { return INSERT_ACL; }
100+
inline uint64_t update_ac() { return UPDATE_ACL; }
101+
inline uint64_t delete_ac() { return DELETE_ACL; }
102+
inline static uint64_t create_ac() { return CREATE_ACL; }
103+
inline static uint64_t drop_ac() { return DROP_ACL; }
104+
inline static uint64_t relead_ac() { return RELOAD_ACL; }
105+
inline static uint64_t shutdown_ac() { return SHUTDOWN_ACL; }
106+
inline static uint64_t process_ac() { return PROCESS_ACL; }
107+
inline static uint64_t file_ac() { return FILE_ACL; }
108+
inline static uint64_t grant_ac() { return GRANT_ACL; }
109+
inline static uint64_t references_ac() { return REFERENCES_ACL; }
110+
inline static uint64_t index_ac() { return INDEX_ACL; }
111+
inline static uint64_t alter_ac() { return ALTER_ACL; }
112+
inline static uint64_t show_db_ac() { return SHOW_DB_ACL; }
113+
inline static uint64_t super_ac() { return SUPER_ACL; }
114+
inline static uint64_t create_tmp_ac() { return CREATE_TMP_ACL; }
115+
inline static uint64_t lock_tables_ac() { return LOCK_TABLES_ACL; }
116+
inline static uint64_t execute_ac() { return EXECUTE_ACL; }
117+
inline static uint64_t repl_slave_ac() { return REPL_SLAVE_ACL; }
118+
inline static uint64_t repl_client_ac() { return REPL_CLIENT_ACL; }
119+
inline static uint64_t create_view_ac() { return CREATE_VIEW_ACL; }
120+
inline static uint64_t show_view_ac() { return SHOW_VIEW_ACL; }
121+
inline static uint64_t create_proc_ac() { return CREATE_PROC_ACL; }
122+
inline static uint64_t alter_proc_ac() { return ALTER_PROC_ACL; }
123+
inline static uint64_t create_user_ac() { return CREATE_USER_ACL; }
124+
inline static uint64_t event_ac() { return EVENT_ACL; }
125+
inline static uint64_t trigger_ac() { return TRIGGER_ACL; }
126+
inline static uint64_t create_tablespace_ac() { return CREATE_TABLESPACE_ACL; }
127+
inline static uint64_t acl_all() { return ~NO_ACCESS; }
126128
uint64_t to_int() const { return m_priv; };
127129
private:
128130
uint64_t m_priv;

client/mysql_install_db.cc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -360,7 +360,7 @@ struct Sql_user
360360
ss << "'',";
361361
}
362362
uint64_t acl= priv.to_int();
363-
for(int i= 0; i< 29; ++i)
363+
for(int i= 0; i< NUM_ACLS; ++i)
364364
{
365365
if( (acl & (1L << i)) != 0 )
366366
ss << "'Y',";

mysql-test/include/m_i_db_common.inc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ if ($passwd != ""){
88
SELECT user,host,plugin FROM mysql.user WHERE password_expired='n';
99
SELECT count(*) FROM mysql.user;
1010
CREATE USER 'u1'@'localhost';
11-
GRANT SUPER ON *.* TO 'u1'@'localhost';
11+
GRANT ALL ON *.* TO 'u1'@'localhost';
1212

1313
show databases;
1414

mysql-test/r/m_i_db.result

Lines changed: 23 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ SELECT count(*) FROM mysql.user;
1212
count(*)
1313
1
1414
CREATE USER 'u1'@'localhost';
15-
GRANT SUPER ON *.* TO 'u1'@'localhost';
15+
GRANT ALL ON *.* TO 'u1'@'localhost';
1616
show databases;
1717
Database
1818
information_schema
@@ -37,7 +37,7 @@ SELECT count(*) FROM mysql.user;
3737
count(*)
3838
1
3939
CREATE USER 'u1'@'localhost';
40-
GRANT SUPER ON *.* TO 'u1'@'localhost';
40+
GRANT ALL ON *.* TO 'u1'@'localhost';
4141
show databases;
4242
Database
4343
information_schema
@@ -56,7 +56,7 @@ SELECT count(*) FROM mysql.user;
5656
count(*)
5757
1
5858
CREATE USER 'u1'@'localhost';
59-
GRANT SUPER ON *.* TO 'u1'@'localhost';
59+
GRANT ALL ON *.* TO 'u1'@'localhost';
6060
show databases;
6161
Database
6262
information_schema
@@ -75,7 +75,7 @@ SELECT count(*) FROM mysql.user;
7575
count(*)
7676
1
7777
CREATE USER 'u1'@'localhost';
78-
GRANT SUPER ON *.* TO 'u1'@'localhost';
78+
GRANT ALL ON *.* TO 'u1'@'localhost';
7979
show databases;
8080
Database
8181
information_schema
@@ -96,7 +96,7 @@ SELECT count(*) FROM mysql.user;
9696
count(*)
9797
1
9898
CREATE USER 'u1'@'localhost';
99-
GRANT SUPER ON *.* TO 'u1'@'localhost';
99+
GRANT ALL ON *.* TO 'u1'@'localhost';
100100
show databases;
101101
Database
102102
information_schema
@@ -115,7 +115,7 @@ SELECT count(*) FROM mysql.user;
115115
count(*)
116116
1
117117
CREATE USER 'u1'@'localhost';
118-
GRANT SUPER ON *.* TO 'u1'@'localhost';
118+
GRANT ALL ON *.* TO 'u1'@'localhost';
119119
show databases;
120120
Database
121121
information_schema
@@ -134,7 +134,7 @@ SELECT count(*) FROM mysql.user;
134134
count(*)
135135
1
136136
CREATE USER 'u1'@'localhost';
137-
GRANT SUPER ON *.* TO 'u1'@'localhost';
137+
GRANT ALL ON *.* TO 'u1'@'localhost';
138138
show databases;
139139
Database
140140
information_schema
@@ -153,7 +153,7 @@ SELECT count(*) FROM mysql.user;
153153
count(*)
154154
1
155155
CREATE USER 'u1'@'localhost';
156-
GRANT SUPER ON *.* TO 'u1'@'localhost';
156+
GRANT ALL ON *.* TO 'u1'@'localhost';
157157
show databases;
158158
Database
159159
information_schema
@@ -175,7 +175,7 @@ SELECT count(*) FROM mysql.user;
175175
count(*)
176176
1
177177
CREATE USER 'u1'@'localhost';
178-
GRANT SUPER ON *.* TO 'u1'@'localhost';
178+
GRANT ALL ON *.* TO 'u1'@'localhost';
179179
show databases;
180180
Database
181181
information_schema
@@ -197,7 +197,7 @@ SELECT count(*) FROM mysql.user;
197197
count(*)
198198
1
199199
CREATE USER 'u1'@'localhost';
200-
GRANT SUPER ON *.* TO 'u1'@'localhost';
200+
GRANT ALL ON *.* TO 'u1'@'localhost';
201201
show databases;
202202
Database
203203
information_schema
@@ -215,7 +215,7 @@ SELECT count(*) FROM mysql.user;
215215
count(*)
216216
1
217217
CREATE USER 'u1'@'localhost';
218-
GRANT SUPER ON *.* TO 'u1'@'localhost';
218+
GRANT ALL ON *.* TO 'u1'@'localhost';
219219
show databases;
220220
Database
221221
information_schema
@@ -234,7 +234,7 @@ SELECT count(*) FROM mysql.user;
234234
count(*)
235235
1
236236
CREATE USER 'u1'@'localhost';
237-
GRANT SUPER ON *.* TO 'u1'@'localhost';
237+
GRANT ALL ON *.* TO 'u1'@'localhost';
238238
show databases;
239239
Database
240240
information_schema
@@ -257,7 +257,7 @@ SELECT count(*) FROM mysql.user;
257257
count(*)
258258
1
259259
CREATE USER 'u1'@'localhost';
260-
GRANT SUPER ON *.* TO 'u1'@'localhost';
260+
GRANT ALL ON *.* TO 'u1'@'localhost';
261261
show databases;
262262
Database
263263
information_schema
@@ -276,7 +276,7 @@ SELECT count(*) FROM mysql.user;
276276
count(*)
277277
1
278278
CREATE USER 'u1'@'localhost';
279-
GRANT SUPER ON *.* TO 'u1'@'localhost';
279+
GRANT ALL ON *.* TO 'u1'@'localhost';
280280
show databases;
281281
Database
282282
information_schema
@@ -299,7 +299,7 @@ SELECT count(*) FROM mysql.user;
299299
count(*)
300300
1
301301
CREATE USER 'u1'@'localhost';
302-
GRANT SUPER ON *.* TO 'u1'@'localhost';
302+
GRANT ALL ON *.* TO 'u1'@'localhost';
303303
show databases;
304304
Database
305305
information_schema
@@ -318,7 +318,7 @@ SELECT count(*) FROM mysql.user;
318318
count(*)
319319
1
320320
CREATE USER 'u1'@'localhost';
321-
GRANT SUPER ON *.* TO 'u1'@'localhost';
321+
GRANT ALL ON *.* TO 'u1'@'localhost';
322322
show databases;
323323
Database
324324
information_schema
@@ -340,7 +340,7 @@ SELECT count(*) FROM mysql.user;
340340
count(*)
341341
1
342342
CREATE USER 'u1'@'localhost';
343-
GRANT SUPER ON *.* TO 'u1'@'localhost';
343+
GRANT ALL ON *.* TO 'u1'@'localhost';
344344
show databases;
345345
Database
346346
information_schema
@@ -358,7 +358,7 @@ SELECT count(*) FROM mysql.user;
358358
count(*)
359359
1
360360
CREATE USER 'u1'@'localhost';
361-
GRANT SUPER ON *.* TO 'u1'@'localhost';
361+
GRANT ALL ON *.* TO 'u1'@'localhost';
362362
show databases;
363363
Database
364364
information_schema
@@ -380,7 +380,7 @@ SELECT count(*) FROM mysql.user;
380380
count(*)
381381
1
382382
CREATE USER 'u1'@'localhost';
383-
GRANT SUPER ON *.* TO 'u1'@'localhost';
383+
GRANT ALL ON *.* TO 'u1'@'localhost';
384384
show databases;
385385
Database
386386
information_schema
@@ -398,7 +398,7 @@ SELECT count(*) FROM mysql.user;
398398
count(*)
399399
1
400400
CREATE USER 'u1'@'localhost';
401-
GRANT SUPER ON *.* TO 'u1'@'localhost';
401+
GRANT ALL ON *.* TO 'u1'@'localhost';
402402
show databases;
403403
Database
404404
information_schema
@@ -420,7 +420,7 @@ SELECT count(*) FROM mysql.user;
420420
count(*)
421421
1
422422
CREATE USER 'u1'@'localhost';
423-
GRANT SUPER ON *.* TO 'u1'@'localhost';
423+
GRANT ALL ON *.* TO 'u1'@'localhost';
424424
show databases;
425425
Database
426426
information_schema
@@ -442,7 +442,7 @@ SELECT count(*) FROM mysql.user;
442442
count(*)
443443
1
444444
CREATE USER 'u1'@'localhost';
445-
GRANT SUPER ON *.* TO 'u1'@'localhost';
445+
GRANT ALL ON *.* TO 'u1'@'localhost';
446446
show databases;
447447
Database
448448
information_schema
@@ -460,7 +460,7 @@ SELECT count(*) FROM mysql.user;
460460
count(*)
461461
1
462462
CREATE USER 'u1'@'localhost';
463-
GRANT SUPER ON *.* TO 'u1'@'localhost';
463+
GRANT ALL ON *.* TO 'u1'@'localhost';
464464
show databases;
465465
Database
466466
information_schema

0 commit comments

Comments
 (0)