mirror of
https://github.com/MariaDB/server.git
synced 2025-08-08 11:22:35 +03:00
MDEV-36397 Record change_user command in MTR output
MTR .result files currently do not contain output to indicate if a change_user command has been executed in the corresponding .test files. Record change_user command in the following format in MTR output only if disable_query_log is set to false: change_user <user>,<password>,<db>; All new code of the whole pull request, including one or several files that are either new files or modified ones, are contributed under the BSD-new license. I am contributing on behalf of my employer Amazon Web Services, Inc.
This commit is contained in:
committed by
Sergei Golubchik
parent
2ee2e2d0f3
commit
212fad1b7e
@@ -4663,6 +4663,24 @@ void do_change_user(struct st_command *command)
|
|||||||
dynstr_set(&ds_db, mysql->db);
|
dynstr_set(&ds_db, mysql->db);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Connection logging if enabled */
|
||||||
|
if (!disable_query_log)
|
||||||
|
{
|
||||||
|
DYNAMIC_STRING *ds= &ds_res;
|
||||||
|
|
||||||
|
dynstr_append_mem(ds, STRING_WITH_LEN("change_user "));
|
||||||
|
replace_dynstr_append(ds, ds_user.str);
|
||||||
|
dynstr_append_mem(ds, STRING_WITH_LEN(","));
|
||||||
|
|
||||||
|
if (ds_passwd.length)
|
||||||
|
replace_dynstr_append(ds, ds_passwd.str);
|
||||||
|
dynstr_append_mem(ds, STRING_WITH_LEN(","));
|
||||||
|
|
||||||
|
if (ds_db.length)
|
||||||
|
replace_dynstr_append(ds, ds_db.str);
|
||||||
|
dynstr_append_mem(ds, STRING_WITH_LEN(";\n"));
|
||||||
|
}
|
||||||
|
|
||||||
DBUG_PRINT("info",("connection: '%s' user: '%s' password: '%s' database: '%s'",
|
DBUG_PRINT("info",("connection: '%s' user: '%s' password: '%s' database: '%s'",
|
||||||
cur_con->name, ds_user.str, ds_passwd.str, ds_db.str));
|
cur_con->name, ds_user.str, ds_passwd.str, ds_db.str));
|
||||||
|
|
||||||
|
@@ -789,9 +789,21 @@ int check_embedded_connection(MYSQL *mysql, const char *db)
|
|||||||
sctx->proxy_user[0]= 0;
|
sctx->proxy_user[0]= 0;
|
||||||
sctx->master_access= GLOBAL_ACLS; // Full rights
|
sctx->master_access= GLOBAL_ACLS; // Full rights
|
||||||
emb_transfer_connect_attrs(mysql);
|
emb_transfer_connect_attrs(mysql);
|
||||||
|
|
||||||
/* Change database if necessary */
|
/* Change database if necessary */
|
||||||
if (!(result= (db && db[0] && mysql_change_db(thd, &db_str, FALSE))))
|
result = 0;
|
||||||
|
if (db && db[0])
|
||||||
|
{
|
||||||
|
result = mysql_change_db(thd, &db_str, FALSE);
|
||||||
|
if (!result)
|
||||||
|
{
|
||||||
|
my_free(mysql->db);
|
||||||
|
mysql->db = my_strdup(PSI_NOT_INSTRUMENTED, db, MYF(0));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (!result)
|
||||||
my_ok(thd);
|
my_ok(thd);
|
||||||
|
|
||||||
thd->protocol->end_statement();
|
thd->protocol->end_statement();
|
||||||
emb_read_query_result(mysql);
|
emb_read_query_result(mysql);
|
||||||
return result;
|
return result;
|
||||||
|
@@ -13,6 +13,7 @@ BACKUP STAGE FLUSH;
|
|||||||
SELECT lock_mode FROM information_schema.metadata_lock_info WHERE lock_type='Backup lock';
|
SELECT lock_mode FROM information_schema.metadata_lock_info WHERE lock_type='Backup lock';
|
||||||
lock_mode
|
lock_mode
|
||||||
MDL_BACKUP_FLUSH
|
MDL_BACKUP_FLUSH
|
||||||
|
change_user user2,,;
|
||||||
SELECT lock_mode FROM information_schema.metadata_lock_info WHERE lock_type='Backup lock';
|
SELECT lock_mode FROM information_schema.metadata_lock_info WHERE lock_type='Backup lock';
|
||||||
lock_mode
|
lock_mode
|
||||||
disconnect con1;
|
disconnect con1;
|
||||||
|
@@ -11,27 +11,35 @@ grant select on test.* to test_newpw;
|
|||||||
select concat('<', user(), '>'), concat('<', current_user(), '>'), database();
|
select concat('<', user(), '>'), concat('<', current_user(), '>'), database();
|
||||||
concat('<', user(), '>') concat('<', current_user(), '>') database()
|
concat('<', user(), '>') concat('<', current_user(), '>') database()
|
||||||
<root@localhost> <root@localhost> test
|
<root@localhost> <root@localhost> test
|
||||||
|
change_user test_nopw,,;
|
||||||
select concat('<', user(), '>'), concat('<', current_user(), '>'), database();
|
select concat('<', user(), '>'), concat('<', current_user(), '>'), database();
|
||||||
concat('<', user(), '>') concat('<', current_user(), '>') database()
|
concat('<', user(), '>') concat('<', current_user(), '>') database()
|
||||||
<test_nopw@localhost> <test_nopw@%> NULL
|
<test_nopw@localhost> <test_nopw@%> NULL
|
||||||
|
change_user test_oldpw,oldpw,;
|
||||||
select concat('<', user(), '>'), concat('<', current_user(), '>'), database();
|
select concat('<', user(), '>'), concat('<', current_user(), '>'), database();
|
||||||
concat('<', user(), '>') concat('<', current_user(), '>') database()
|
concat('<', user(), '>') concat('<', current_user(), '>') database()
|
||||||
<test_oldpw@localhost> <test_oldpw@%> NULL
|
<test_oldpw@localhost> <test_oldpw@%> NULL
|
||||||
|
change_user test_newpw,newpw,;
|
||||||
select concat('<', user(), '>'), concat('<', current_user(), '>'), database();
|
select concat('<', user(), '>'), concat('<', current_user(), '>'), database();
|
||||||
concat('<', user(), '>') concat('<', current_user(), '>') database()
|
concat('<', user(), '>') concat('<', current_user(), '>') database()
|
||||||
<test_newpw@localhost> <test_newpw@%> NULL
|
<test_newpw@localhost> <test_newpw@%> NULL
|
||||||
|
change_user root,,;
|
||||||
select concat('<', user(), '>'), concat('<', current_user(), '>'), database();
|
select concat('<', user(), '>'), concat('<', current_user(), '>'), database();
|
||||||
concat('<', user(), '>') concat('<', current_user(), '>') database()
|
concat('<', user(), '>') concat('<', current_user(), '>') database()
|
||||||
<root@localhost> <root@localhost> NULL
|
<root@localhost> <root@localhost> NULL
|
||||||
|
change_user test_nopw,,test;
|
||||||
select concat('<', user(), '>'), concat('<', current_user(), '>'), database();
|
select concat('<', user(), '>'), concat('<', current_user(), '>'), database();
|
||||||
concat('<', user(), '>') concat('<', current_user(), '>') database()
|
concat('<', user(), '>') concat('<', current_user(), '>') database()
|
||||||
<test_nopw@localhost> <test_nopw@%> test
|
<test_nopw@localhost> <test_nopw@%> test
|
||||||
|
change_user test_oldpw,oldpw,test;
|
||||||
select concat('<', user(), '>'), concat('<', current_user(), '>'), database();
|
select concat('<', user(), '>'), concat('<', current_user(), '>'), database();
|
||||||
concat('<', user(), '>') concat('<', current_user(), '>') database()
|
concat('<', user(), '>') concat('<', current_user(), '>') database()
|
||||||
<test_oldpw@localhost> <test_oldpw@%> test
|
<test_oldpw@localhost> <test_oldpw@%> test
|
||||||
|
change_user test_newpw,newpw,test;
|
||||||
select concat('<', user(), '>'), concat('<', current_user(), '>'), database();
|
select concat('<', user(), '>'), concat('<', current_user(), '>'), database();
|
||||||
concat('<', user(), '>') concat('<', current_user(), '>') database()
|
concat('<', user(), '>') concat('<', current_user(), '>') database()
|
||||||
<test_newpw@localhost> <test_newpw@%> test
|
<test_newpw@localhost> <test_newpw@%> test
|
||||||
|
change_user root,,test;
|
||||||
select concat('<', user(), '>'), concat('<', current_user(), '>'), database();
|
select concat('<', user(), '>'), concat('<', current_user(), '>'), database();
|
||||||
concat('<', user(), '>') concat('<', current_user(), '>') database()
|
concat('<', user(), '>') concat('<', current_user(), '>') database()
|
||||||
<root@localhost> <root@localhost> test
|
<root@localhost> <root@localhost> test
|
||||||
@@ -45,7 +53,7 @@ SELECT @@session.sql_big_selects;
|
|||||||
SELECT @@global.max_join_size;
|
SELECT @@global.max_join_size;
|
||||||
@@global.max_join_size
|
@@global.max_join_size
|
||||||
HA_POS_ERROR
|
HA_POS_ERROR
|
||||||
change_user
|
change_user root,,test;
|
||||||
SELECT @@session.sql_big_selects;
|
SELECT @@session.sql_big_selects;
|
||||||
@@session.sql_big_selects
|
@@session.sql_big_selects
|
||||||
1
|
1
|
||||||
@@ -54,13 +62,13 @@ SELECT @@global.max_join_size;
|
|||||||
HA_POS_ERROR
|
HA_POS_ERROR
|
||||||
SET @@global.max_join_size = 10000;
|
SET @@global.max_join_size = 10000;
|
||||||
SET @@session.max_join_size = default;
|
SET @@session.max_join_size = default;
|
||||||
change_user
|
change_user root,,test;
|
||||||
SELECT @@session.sql_big_selects;
|
SELECT @@session.sql_big_selects;
|
||||||
@@session.sql_big_selects
|
@@session.sql_big_selects
|
||||||
0
|
0
|
||||||
SET @@global.max_join_size = 18446744073709551615;
|
SET @@global.max_join_size = 18446744073709551615;
|
||||||
SET @@session.max_join_size = default;
|
SET @@session.max_join_size = default;
|
||||||
change_user
|
change_user root,,test;
|
||||||
SELECT @@session.sql_big_selects;
|
SELECT @@session.sql_big_selects;
|
||||||
@@session.sql_big_selects
|
@@session.sql_big_selects
|
||||||
1
|
1
|
||||||
@@ -83,7 +91,7 @@ GET_LOCK('bug31418', 1)
|
|||||||
SELECT IS_USED_LOCK('bug31418') = CONNECTION_ID();
|
SELECT IS_USED_LOCK('bug31418') = CONNECTION_ID();
|
||||||
IS_USED_LOCK('bug31418') = CONNECTION_ID()
|
IS_USED_LOCK('bug31418') = CONNECTION_ID()
|
||||||
1
|
1
|
||||||
change_user
|
change_user root,,test;
|
||||||
SELECT IS_FREE_LOCK('bug31418');
|
SELECT IS_FREE_LOCK('bug31418');
|
||||||
IS_FREE_LOCK('bug31418')
|
IS_FREE_LOCK('bug31418')
|
||||||
1
|
1
|
||||||
@@ -91,6 +99,7 @@ SELECT IS_USED_LOCK('bug31418');
|
|||||||
IS_USED_LOCK('bug31418')
|
IS_USED_LOCK('bug31418')
|
||||||
NULL
|
NULL
|
||||||
FLUSH STATUS;
|
FLUSH STATUS;
|
||||||
|
change_user root,,test;
|
||||||
Value of com_select did not change
|
Value of com_select did not change
|
||||||
set global secure_auth=default;
|
set global secure_auth=default;
|
||||||
Warnings:
|
Warnings:
|
||||||
@@ -102,7 +111,7 @@ now()
|
|||||||
select year(now()) > 2011;
|
select year(now()) > 2011;
|
||||||
year(now()) > 2011
|
year(now()) > 2011
|
||||||
0
|
0
|
||||||
change_user
|
change_user root,,test;
|
||||||
select year(now()) > 2011;
|
select year(now()) > 2011;
|
||||||
year(now()) > 2011
|
year(now()) > 2011
|
||||||
1
|
1
|
||||||
|
@@ -74,7 +74,6 @@ SELECT @@session.sql_big_selects;
|
|||||||
# The exact value depends on the server build flags
|
# The exact value depends on the server build flags
|
||||||
--replace_result 18446744073709551615 HA_POS_ERROR 4294967295 HA_POS_ERROR
|
--replace_result 18446744073709551615 HA_POS_ERROR 4294967295 HA_POS_ERROR
|
||||||
SELECT @@global.max_join_size;
|
SELECT @@global.max_join_size;
|
||||||
--echo change_user
|
|
||||||
--change_user
|
--change_user
|
||||||
SELECT @@session.sql_big_selects;
|
SELECT @@session.sql_big_selects;
|
||||||
# The exact value depends on the server build flags
|
# The exact value depends on the server build flags
|
||||||
@@ -82,7 +81,6 @@ SELECT @@session.sql_big_selects;
|
|||||||
SELECT @@global.max_join_size;
|
SELECT @@global.max_join_size;
|
||||||
SET @@global.max_join_size = 10000;
|
SET @@global.max_join_size = 10000;
|
||||||
SET @@session.max_join_size = default;
|
SET @@session.max_join_size = default;
|
||||||
--echo change_user
|
|
||||||
--change_user
|
--change_user
|
||||||
SELECT @@session.sql_big_selects;
|
SELECT @@session.sql_big_selects;
|
||||||
# On some machines the following will result into a warning
|
# On some machines the following will result into a warning
|
||||||
@@ -90,7 +88,6 @@ SELECT @@session.sql_big_selects;
|
|||||||
SET @@global.max_join_size = 18446744073709551615;
|
SET @@global.max_join_size = 18446744073709551615;
|
||||||
--enable_warnings
|
--enable_warnings
|
||||||
SET @@session.max_join_size = default;
|
SET @@session.max_join_size = default;
|
||||||
--echo change_user
|
|
||||||
--change_user
|
--change_user
|
||||||
SELECT @@session.sql_big_selects;
|
SELECT @@session.sql_big_selects;
|
||||||
--replace_result 4294967295 18446744073709551615
|
--replace_result 4294967295 18446744073709551615
|
||||||
@@ -107,7 +104,6 @@ SELECT IS_FREE_LOCK('bug31418');
|
|||||||
SELECT IS_USED_LOCK('bug31418');
|
SELECT IS_USED_LOCK('bug31418');
|
||||||
SELECT GET_LOCK('bug31418', 1);
|
SELECT GET_LOCK('bug31418', 1);
|
||||||
SELECT IS_USED_LOCK('bug31418') = CONNECTION_ID();
|
SELECT IS_USED_LOCK('bug31418') = CONNECTION_ID();
|
||||||
--echo change_user
|
|
||||||
--change_user
|
--change_user
|
||||||
SELECT IS_FREE_LOCK('bug31418');
|
SELECT IS_FREE_LOCK('bug31418');
|
||||||
SELECT IS_USED_LOCK('bug31418');
|
SELECT IS_USED_LOCK('bug31418');
|
||||||
@@ -151,7 +147,6 @@ set global secure_auth=default;
|
|||||||
set timestamp=unix_timestamp('2010-10-10 10:10:10');
|
set timestamp=unix_timestamp('2010-10-10 10:10:10');
|
||||||
select now();
|
select now();
|
||||||
select year(now()) > 2011;
|
select year(now()) > 2011;
|
||||||
--echo change_user
|
|
||||||
--change_user
|
--change_user
|
||||||
select year(now()) > 2011;
|
select year(now()) > 2011;
|
||||||
--enable_service_connection
|
--enable_service_connection
|
||||||
|
@@ -1,9 +1,15 @@
|
|||||||
connect test,localhost,root,,;
|
connect test,localhost,root,,;
|
||||||
connection test;
|
connection test;
|
||||||
|
change_user foo,bar,;
|
||||||
ERROR 28000: Access denied for user 'foo'@'localhost' (using password: YES)
|
ERROR 28000: Access denied for user 'foo'@'localhost' (using password: YES)
|
||||||
|
change_user foo,,;
|
||||||
ERROR 28000: Access denied for user 'foo'@'localhost' (using password: NO)
|
ERROR 28000: Access denied for user 'foo'@'localhost' (using password: NO)
|
||||||
|
change_user root,,test;
|
||||||
|
change_user foo,bar,;
|
||||||
ERROR 28000: Access denied for user 'foo'@'localhost' (using password: YES)
|
ERROR 28000: Access denied for user 'foo'@'localhost' (using password: YES)
|
||||||
|
change_user foo,bar,;
|
||||||
ERROR 08S01: Unknown command
|
ERROR 08S01: Unknown command
|
||||||
|
change_user root,,test;
|
||||||
ERROR 08S01: Unknown command
|
ERROR 08S01: Unknown command
|
||||||
disconnect test;
|
disconnect test;
|
||||||
connection default;
|
connection default;
|
||||||
@@ -12,6 +18,7 @@ connection default;
|
|||||||
# MDEV-36405 Session tracking does not report changes from COM_CHANGE_USER
|
# MDEV-36405 Session tracking does not report changes from COM_CHANGE_USER
|
||||||
#
|
#
|
||||||
change_user
|
change_user
|
||||||
|
change_user root,,test;
|
||||||
-- Tracker : SESSION_TRACK_SYSTEM_VARIABLES
|
-- Tracker : SESSION_TRACK_SYSTEM_VARIABLES
|
||||||
-- autocommit: ON
|
-- autocommit: ON
|
||||||
-- character_set_client: latin1
|
-- character_set_client: latin1
|
||||||
|
@@ -1676,6 +1676,7 @@ use test;
|
|||||||
# THD::create_tmp_table_def_key
|
# THD::create_tmp_table_def_key
|
||||||
#
|
#
|
||||||
connect con1,localhost,root,,;
|
connect con1,localhost,root,,;
|
||||||
|
change_user root,,;
|
||||||
CREATE TEMPORARY TABLE test.t (a INT);
|
CREATE TEMPORARY TABLE test.t (a INT);
|
||||||
WITH cte AS (SELECT 1) SELECT * FROM cte;
|
WITH cte AS (SELECT 1) SELECT * FROM cte;
|
||||||
1
|
1
|
||||||
|
@@ -10,8 +10,11 @@ ERROR HY000: Server is running in --secure-auth mode, but 'uu2'@'localhost' has
|
|||||||
connect(localhost,uu2,password,test,MASTER_PORT,MASTER_SOCKET);
|
connect(localhost,uu2,password,test,MASTER_PORT,MASTER_SOCKET);
|
||||||
connect fail,localhost,uu2,password;
|
connect fail,localhost,uu2,password;
|
||||||
ERROR HY000: Server is running in --secure-auth mode, but 'uu2'@'localhost' has a password in the old format; please change the password to the new format
|
ERROR HY000: Server is running in --secure-auth mode, but 'uu2'@'localhost' has a password in the old format; please change the password to the new format
|
||||||
|
change_user u1,,;
|
||||||
ERROR 28000: Access denied for user 'u1'@'localhost' (using password: NO)
|
ERROR 28000: Access denied for user 'u1'@'localhost' (using password: NO)
|
||||||
|
change_user uu2,,;
|
||||||
ERROR HY000: Server is running in --secure-auth mode, but 'uu2'@'localhost' has a password in the old format; please change the password to the new format
|
ERROR HY000: Server is running in --secure-auth mode, but 'uu2'@'localhost' has a password in the old format; please change the password to the new format
|
||||||
|
change_user uu2,password,;
|
||||||
ERROR HY000: Server is running in --secure-auth mode, but 'uu2'@'localhost' has a password in the old format; please change the password to the new format
|
ERROR HY000: Server is running in --secure-auth mode, but 'uu2'@'localhost' has a password in the old format; please change the password to the new format
|
||||||
delete from mysql.user where plugin = 'mysql_old_password';
|
delete from mysql.user where plugin = 'mysql_old_password';
|
||||||
flush privileges;
|
flush privileges;
|
||||||
|
@@ -4,6 +4,7 @@ delete from mysql.global_priv where user != 'root';
|
|||||||
flush privileges;
|
flush privileges;
|
||||||
connect(localhost,USER,,test,MASTER_PORT,MASTER_SOCKET);
|
connect(localhost,USER,,test,MASTER_PORT,MASTER_SOCKET);
|
||||||
ERROR 28000: Access denied for user 'USER'@'localhost'
|
ERROR 28000: Access denied for user 'USER'@'localhost'
|
||||||
|
change_user buildbot,,;
|
||||||
ERROR 28000: Access denied for user 'USER'@'localhost'
|
ERROR 28000: Access denied for user 'USER'@'localhost'
|
||||||
replace mysql.global_priv select * from global_priv_backup;
|
replace mysql.global_priv select * from global_priv_backup;
|
||||||
flush privileges;
|
flush privileges;
|
||||||
|
@@ -129,6 +129,7 @@ connection default;
|
|||||||
# account is locked
|
# account is locked
|
||||||
#
|
#
|
||||||
alter user user1@localhost account lock;
|
alter user user1@localhost account lock;
|
||||||
|
change_user user1,,;
|
||||||
ERROR HY000: Access denied, this account is locked
|
ERROR HY000: Access denied, this account is locked
|
||||||
#
|
#
|
||||||
# MDEV-24098 SHOW CREATE USER invalid for both PASSWORD EXPIRE and
|
# MDEV-24098 SHOW CREATE USER invalid for both PASSWORD EXPIRE and
|
||||||
|
@@ -25,8 +25,11 @@ connect(localhost,u,bad_pass,test,MASTER_PORT,MASTER_SOCKET);
|
|||||||
connect con1, localhost, u, bad_pass;
|
connect con1, localhost, u, bad_pass;
|
||||||
ERROR 28000: Access denied for user 'u'@'localhost' (using password: YES)
|
ERROR 28000: Access denied for user 'u'@'localhost' (using password: YES)
|
||||||
connect con1, localhost, u, good_pass;
|
connect con1, localhost, u, good_pass;
|
||||||
|
change_user u,bad_pass,;
|
||||||
ERROR 28000: Access denied for user 'u'@'localhost' (using password: YES)
|
ERROR 28000: Access denied for user 'u'@'localhost' (using password: YES)
|
||||||
|
change_user u,bad_pass,;
|
||||||
ERROR 28000: Access denied for user 'u'@'localhost' (using password: YES)
|
ERROR 28000: Access denied for user 'u'@'localhost' (using password: YES)
|
||||||
|
change_user u,good_pass,;
|
||||||
ERROR HY000: User is blocked because of too many credential errors; unblock with 'ALTER USER / FLUSH PRIVILEGES'
|
ERROR HY000: User is blocked because of too many credential errors; unblock with 'ALTER USER / FLUSH PRIVILEGES'
|
||||||
disconnect con1;
|
disconnect con1;
|
||||||
connection default;
|
connection default;
|
||||||
|
@@ -1159,11 +1159,13 @@ connection default;
|
|||||||
GRANT SELECT ON mysql.* TO very_long_user_name_number_1;
|
GRANT SELECT ON mysql.* TO very_long_user_name_number_1;
|
||||||
GRANT SELECT ON mysql.* TO very_long_user_name_number_2;
|
GRANT SELECT ON mysql.* TO very_long_user_name_number_2;
|
||||||
GRANT ALL ON *.* TO even_longer_user_name_number_3_to_test_the_grantor_and_definer_field_length@localhost WITH GRANT OPTION;
|
GRANT ALL ON *.* TO even_longer_user_name_number_3_to_test_the_grantor_and_definer_field_length@localhost WITH GRANT OPTION;
|
||||||
|
change_user even_longer_user_name_number_3_to_test_the_grantor_and_definer_field_length,,;
|
||||||
GRANT INSERT ON mysql.user TO very_long_user_name_number_1;
|
GRANT INSERT ON mysql.user TO very_long_user_name_number_1;
|
||||||
GRANT INSERT ON mysql.user TO very_long_user_name_number_2;
|
GRANT INSERT ON mysql.user TO very_long_user_name_number_2;
|
||||||
GRANT UPDATE (User) ON mysql.db TO very_long_user_name_number_1;
|
GRANT UPDATE (User) ON mysql.db TO very_long_user_name_number_1;
|
||||||
GRANT UPDATE (User) ON mysql.db TO very_long_user_name_number_2;
|
GRANT UPDATE (User) ON mysql.db TO very_long_user_name_number_2;
|
||||||
CREATE PROCEDURE test.pr() BEGIN END;
|
CREATE PROCEDURE test.pr() BEGIN END;
|
||||||
|
change_user root,,;
|
||||||
Phase 1/8: Checking and upgrading mysql database
|
Phase 1/8: Checking and upgrading mysql database
|
||||||
Processing databases
|
Processing databases
|
||||||
mysql
|
mysql
|
||||||
|
@@ -949,6 +949,10 @@ drop table t1;
|
|||||||
mysqltest: At line 1: query 'change_user root,,inexistent' failed: ER_BAD_DB_ERROR (1049): Unknown database 'inexistent'
|
mysqltest: At line 1: query 'change_user root,,inexistent' failed: ER_BAD_DB_ERROR (1049): Unknown database 'inexistent'
|
||||||
mysqltest: At line 1: query 'change_user inexistent,,test' failed: ER_ACCESS_DENIED_ERROR (1045): Access denied for user 'inexistent'@'localhost' (using password: NO)
|
mysqltest: At line 1: query 'change_user inexistent,,test' failed: ER_ACCESS_DENIED_ERROR (1045): Access denied for user 'inexistent'@'localhost' (using password: NO)
|
||||||
mysqltest: At line 1: query 'change_user root,inexistent,test' failed: ER_ACCESS_DENIED_ERROR (1045): Access denied for user 'root'@'localhost' (using password: YES)
|
mysqltest: At line 1: query 'change_user root,inexistent,test' failed: ER_ACCESS_DENIED_ERROR (1045): Access denied for user 'root'@'localhost' (using password: YES)
|
||||||
|
change_user root,,test;
|
||||||
|
change_user root,,;
|
||||||
|
change_user root,,;
|
||||||
|
change_user root,,test;
|
||||||
REPLACED_FILE1.txt
|
REPLACED_FILE1.txt
|
||||||
file1.txt
|
file1.txt
|
||||||
file2.txt
|
file2.txt
|
||||||
|
@@ -11,6 +11,7 @@ BEGIN
|
|||||||
insert into t2 select * from t1;
|
insert into t2 select * from t1;
|
||||||
return a+1;
|
return a+1;
|
||||||
END|
|
END|
|
||||||
|
change_user foo,,;
|
||||||
set optimizer_trace="enabled=on";
|
set optimizer_trace="enabled=on";
|
||||||
select * from db1.t1;
|
select * from db1.t1;
|
||||||
ERROR 42000: SELECT command denied to user 'foo'@'localhost' for table `db1`.`t1`
|
ERROR 42000: SELECT command denied to user 'foo'@'localhost' for table `db1`.`t1`
|
||||||
@@ -18,7 +19,9 @@ select * from information_schema.OPTIMIZER_TRACE;
|
|||||||
QUERY TRACE MISSING_BYTES_BEYOND_MAX_MEM_SIZE INSUFFICIENT_PRIVILEGES
|
QUERY TRACE MISSING_BYTES_BEYOND_MAX_MEM_SIZE INSUFFICIENT_PRIVILEGES
|
||||||
0 1
|
0 1
|
||||||
set optimizer_trace="enabled=off";
|
set optimizer_trace="enabled=off";
|
||||||
|
change_user root,,;
|
||||||
grant select(a) on db1.t1 to 'foo'@'%';
|
grant select(a) on db1.t1 to 'foo'@'%';
|
||||||
|
change_user foo,,;
|
||||||
set optimizer_trace="enabled=on";
|
set optimizer_trace="enabled=on";
|
||||||
select * from db1.t1;
|
select * from db1.t1;
|
||||||
a
|
a
|
||||||
@@ -32,10 +35,12 @@ select * from information_schema.OPTIMIZER_TRACE;
|
|||||||
QUERY TRACE MISSING_BYTES_BEYOND_MAX_MEM_SIZE INSUFFICIENT_PRIVILEGES
|
QUERY TRACE MISSING_BYTES_BEYOND_MAX_MEM_SIZE INSUFFICIENT_PRIVILEGES
|
||||||
0 1
|
0 1
|
||||||
set optimizer_trace="enabled=off";
|
set optimizer_trace="enabled=off";
|
||||||
|
change_user root,,;
|
||||||
select * from information_schema.OPTIMIZER_TRACE;
|
select * from information_schema.OPTIMIZER_TRACE;
|
||||||
QUERY TRACE MISSING_BYTES_BEYOND_MAX_MEM_SIZE INSUFFICIENT_PRIVILEGES
|
QUERY TRACE MISSING_BYTES_BEYOND_MAX_MEM_SIZE INSUFFICIENT_PRIVILEGES
|
||||||
grant select on db1.t1 to 'foo'@'%';
|
grant select on db1.t1 to 'foo'@'%';
|
||||||
grant select on db1.t2 to 'foo'@'%';
|
grant select on db1.t2 to 'foo'@'%';
|
||||||
|
change_user foo,,;
|
||||||
set optimizer_trace="enabled=on";
|
set optimizer_trace="enabled=on";
|
||||||
#
|
#
|
||||||
# SELECT privilege on the table db1.t1
|
# SELECT privilege on the table db1.t1
|
||||||
@@ -152,10 +157,12 @@ select * from db1.t1 {
|
|||||||
]
|
]
|
||||||
} 0 0
|
} 0 0
|
||||||
set optimizer_trace="enabled=off";
|
set optimizer_trace="enabled=off";
|
||||||
|
change_user root,,;
|
||||||
grant select on db1.v1 to 'foo'@'%';
|
grant select on db1.v1 to 'foo'@'%';
|
||||||
grant show view on db1.v1 to 'foo'@'%';
|
grant show view on db1.v1 to 'foo'@'%';
|
||||||
grant select on db1.v1 to 'bar'@'%';
|
grant select on db1.v1 to 'bar'@'%';
|
||||||
grant show view on db1.v1 to 'bar'@'%';
|
grant show view on db1.v1 to 'bar'@'%';
|
||||||
|
change_user foo,,;
|
||||||
select current_user();
|
select current_user();
|
||||||
current_user()
|
current_user()
|
||||||
foo@%
|
foo@%
|
||||||
@@ -288,6 +295,7 @@ select * from db1.v1 {
|
|||||||
]
|
]
|
||||||
} 0 0
|
} 0 0
|
||||||
set optimizer_trace="enabled=off";
|
set optimizer_trace="enabled=off";
|
||||||
|
change_user bar,,;
|
||||||
select current_user();
|
select current_user();
|
||||||
current_user()
|
current_user()
|
||||||
bar@%
|
bar@%
|
||||||
@@ -307,10 +315,12 @@ select * from information_schema.OPTIMIZER_TRACE;
|
|||||||
QUERY TRACE MISSING_BYTES_BEYOND_MAX_MEM_SIZE INSUFFICIENT_PRIVILEGES
|
QUERY TRACE MISSING_BYTES_BEYOND_MAX_MEM_SIZE INSUFFICIENT_PRIVILEGES
|
||||||
0 1
|
0 1
|
||||||
set optimizer_trace="enabled=off";
|
set optimizer_trace="enabled=off";
|
||||||
|
change_user root,,;
|
||||||
grant execute on function db1.f1 to 'foo'@'%';
|
grant execute on function db1.f1 to 'foo'@'%';
|
||||||
grant execute on function db1.f1 to 'bar'@'%';
|
grant execute on function db1.f1 to 'bar'@'%';
|
||||||
grant select on db1.t1 to 'bar'@'%';
|
grant select on db1.t1 to 'bar'@'%';
|
||||||
grant insert on db1.t2 to 'foo'@'%';
|
grant insert on db1.t2 to 'foo'@'%';
|
||||||
|
change_user foo,,;
|
||||||
select current_user();
|
select current_user();
|
||||||
current_user()
|
current_user()
|
||||||
foo@%
|
foo@%
|
||||||
@@ -324,6 +334,7 @@ select INSUFFICIENT_PRIVILEGES from information_schema.OPTIMIZER_TRACE;
|
|||||||
INSUFFICIENT_PRIVILEGES
|
INSUFFICIENT_PRIVILEGES
|
||||||
0
|
0
|
||||||
set optimizer_trace="enabled=off";
|
set optimizer_trace="enabled=off";
|
||||||
|
change_user bar,,;
|
||||||
select current_user();
|
select current_user();
|
||||||
current_user()
|
current_user()
|
||||||
bar@%
|
bar@%
|
||||||
@@ -342,10 +353,12 @@ select * from information_schema.OPTIMIZER_TRACE;
|
|||||||
QUERY TRACE MISSING_BYTES_BEYOND_MAX_MEM_SIZE INSUFFICIENT_PRIVILEGES
|
QUERY TRACE MISSING_BYTES_BEYOND_MAX_MEM_SIZE INSUFFICIENT_PRIVILEGES
|
||||||
0 1
|
0 1
|
||||||
set optimizer_trace="enabled=off";
|
set optimizer_trace="enabled=off";
|
||||||
|
change_user root,,;
|
||||||
select current_user();
|
select current_user();
|
||||||
current_user()
|
current_user()
|
||||||
root@localhost
|
root@localhost
|
||||||
REVOKE ALL PRIVILEGES, GRANT OPTION FROM foo;
|
REVOKE ALL PRIVILEGES, GRANT OPTION FROM foo;
|
||||||
|
change_user root,,;
|
||||||
drop user if exists foo;
|
drop user if exists foo;
|
||||||
drop user if exists bar;
|
drop user if exists bar;
|
||||||
drop table db1.t1, db1.t2;
|
drop table db1.t1, db1.t2;
|
||||||
|
@@ -22,6 +22,106 @@ CALL p_install(100);
|
|||||||
connection con2;
|
connection con2;
|
||||||
CALL p_show_vars(100);
|
CALL p_show_vars(100);
|
||||||
connection default;
|
connection default;
|
||||||
|
change_user root,,test;
|
||||||
|
change_user root,,test;
|
||||||
|
change_user root,,test;
|
||||||
|
change_user root,,test;
|
||||||
|
change_user root,,test;
|
||||||
|
change_user root,,test;
|
||||||
|
change_user root,,test;
|
||||||
|
change_user root,,test;
|
||||||
|
change_user root,,test;
|
||||||
|
change_user root,,test;
|
||||||
|
change_user root,,test;
|
||||||
|
change_user root,,test;
|
||||||
|
change_user root,,test;
|
||||||
|
change_user root,,test;
|
||||||
|
change_user root,,test;
|
||||||
|
change_user root,,test;
|
||||||
|
change_user root,,test;
|
||||||
|
change_user root,,test;
|
||||||
|
change_user root,,test;
|
||||||
|
change_user root,,test;
|
||||||
|
change_user root,,test;
|
||||||
|
change_user root,,test;
|
||||||
|
change_user root,,test;
|
||||||
|
change_user root,,test;
|
||||||
|
change_user root,,test;
|
||||||
|
change_user root,,test;
|
||||||
|
change_user root,,test;
|
||||||
|
change_user root,,test;
|
||||||
|
change_user root,,test;
|
||||||
|
change_user root,,test;
|
||||||
|
change_user root,,test;
|
||||||
|
change_user root,,test;
|
||||||
|
change_user root,,test;
|
||||||
|
change_user root,,test;
|
||||||
|
change_user root,,test;
|
||||||
|
change_user root,,test;
|
||||||
|
change_user root,,test;
|
||||||
|
change_user root,,test;
|
||||||
|
change_user root,,test;
|
||||||
|
change_user root,,test;
|
||||||
|
change_user root,,test;
|
||||||
|
change_user root,,test;
|
||||||
|
change_user root,,test;
|
||||||
|
change_user root,,test;
|
||||||
|
change_user root,,test;
|
||||||
|
change_user root,,test;
|
||||||
|
change_user root,,test;
|
||||||
|
change_user root,,test;
|
||||||
|
change_user root,,test;
|
||||||
|
change_user root,,test;
|
||||||
|
change_user root,,test;
|
||||||
|
change_user root,,test;
|
||||||
|
change_user root,,test;
|
||||||
|
change_user root,,test;
|
||||||
|
change_user root,,test;
|
||||||
|
change_user root,,test;
|
||||||
|
change_user root,,test;
|
||||||
|
change_user root,,test;
|
||||||
|
change_user root,,test;
|
||||||
|
change_user root,,test;
|
||||||
|
change_user root,,test;
|
||||||
|
change_user root,,test;
|
||||||
|
change_user root,,test;
|
||||||
|
change_user root,,test;
|
||||||
|
change_user root,,test;
|
||||||
|
change_user root,,test;
|
||||||
|
change_user root,,test;
|
||||||
|
change_user root,,test;
|
||||||
|
change_user root,,test;
|
||||||
|
change_user root,,test;
|
||||||
|
change_user root,,test;
|
||||||
|
change_user root,,test;
|
||||||
|
change_user root,,test;
|
||||||
|
change_user root,,test;
|
||||||
|
change_user root,,test;
|
||||||
|
change_user root,,test;
|
||||||
|
change_user root,,test;
|
||||||
|
change_user root,,test;
|
||||||
|
change_user root,,test;
|
||||||
|
change_user root,,test;
|
||||||
|
change_user root,,test;
|
||||||
|
change_user root,,test;
|
||||||
|
change_user root,,test;
|
||||||
|
change_user root,,test;
|
||||||
|
change_user root,,test;
|
||||||
|
change_user root,,test;
|
||||||
|
change_user root,,test;
|
||||||
|
change_user root,,test;
|
||||||
|
change_user root,,test;
|
||||||
|
change_user root,,test;
|
||||||
|
change_user root,,test;
|
||||||
|
change_user root,,test;
|
||||||
|
change_user root,,test;
|
||||||
|
change_user root,,test;
|
||||||
|
change_user root,,test;
|
||||||
|
change_user root,,test;
|
||||||
|
change_user root,,test;
|
||||||
|
change_user root,,test;
|
||||||
|
change_user root,,test;
|
||||||
|
change_user root,,test;
|
||||||
connection con1;
|
connection con1;
|
||||||
connection con2;
|
connection con2;
|
||||||
connection default;
|
connection default;
|
||||||
|
@@ -178,8 +178,10 @@ CREATE USER user1@localhost;
|
|||||||
GRANT ALTER ON test1.* TO user1@localhost;
|
GRANT ALTER ON test1.* TO user1@localhost;
|
||||||
CREATE DATABASE test1;
|
CREATE DATABASE test1;
|
||||||
SET GLOBAL read_only=1;
|
SET GLOBAL read_only=1;
|
||||||
|
change_user user1,,;
|
||||||
ALTER DATABASE test1 CHARACTER SET utf8;
|
ALTER DATABASE test1 CHARACTER SET utf8;
|
||||||
ERROR HY000: The MariaDB server is running with the --read-only=ON option so it cannot execute this statement
|
ERROR HY000: The MariaDB server is running with the --read-only=ON option so it cannot execute this statement
|
||||||
|
change_user root,,;
|
||||||
SET GLOBAL read_only=0;
|
SET GLOBAL read_only=0;
|
||||||
DROP DATABASE test1;
|
DROP DATABASE test1;
|
||||||
DROP USER user1@localhost;
|
DROP USER user1@localhost;
|
||||||
|
@@ -430,6 +430,7 @@ End of 5.0 tests
|
|||||||
CREATE TABLE t1 (i INT);
|
CREATE TABLE t1 (i INT);
|
||||||
CREATE TRIGGER t_after_insert AFTER INSERT ON t1 FOR EACH ROW SET @bug42188 = 10;
|
CREATE TRIGGER t_after_insert AFTER INSERT ON t1 FOR EACH ROW SET @bug42188 = 10;
|
||||||
INSERT INTO t1 VALUES (1);
|
INSERT INTO t1 VALUES (1);
|
||||||
|
change_user root,,test;
|
||||||
INSERT INTO t1 VALUES (1);
|
INSERT INTO t1 VALUES (1);
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
CREATE TABLE t1(a INT);
|
CREATE TABLE t1(a INT);
|
||||||
|
@@ -49,6 +49,7 @@ ERROR 42000: SELECT command denied to user 'wl5924'@'localhost' for table `perfo
|
|||||||
connection default;
|
connection default;
|
||||||
disconnect non_privileged_user;
|
disconnect non_privileged_user;
|
||||||
grant select on performance_schema.* to wl5924@localhost;
|
grant select on performance_schema.* to wl5924@localhost;
|
||||||
|
change_user wl5924,,;
|
||||||
SELECT SUM(ISNULL(ATTR_VALUE)), COUNT(*)
|
SELECT SUM(ISNULL(ATTR_VALUE)), COUNT(*)
|
||||||
FROM performance_schema.session_account_connect_attrs
|
FROM performance_schema.session_account_connect_attrs
|
||||||
WHERE ATTR_NAME IN ('_os', '_client_name', '_pid',
|
WHERE ATTR_NAME IN ('_os', '_client_name', '_pid',
|
||||||
@@ -56,4 +57,5 @@ WHERE ATTR_NAME IN ('_os', '_client_name', '_pid',
|
|||||||
AND PROCESSLIST_ID = CONNECTION_ID();
|
AND PROCESSLIST_ID = CONNECTION_ID();
|
||||||
SUM(ISNULL(ATTR_VALUE)) COUNT(*)
|
SUM(ISNULL(ATTR_VALUE)) COUNT(*)
|
||||||
0 6
|
0 6
|
||||||
|
change_user root,,test;
|
||||||
DROP USER wl5924@localhost;
|
DROP USER wl5924@localhost;
|
||||||
|
@@ -1,5 +1,6 @@
|
|||||||
create user foo@localhost;
|
create user foo@localhost;
|
||||||
grant create user on *.* to foo@localhost;
|
grant create user on *.* to foo@localhost;
|
||||||
|
change_user foo,,;
|
||||||
create user current_user;
|
create user current_user;
|
||||||
ERROR HY000: Operation CREATE USER failed for CURRENT_USER
|
ERROR HY000: Operation CREATE USER failed for CURRENT_USER
|
||||||
create user current_role;
|
create user current_role;
|
||||||
@@ -19,6 +20,7 @@ show warnings;
|
|||||||
Level Code Message
|
Level Code Message
|
||||||
Error 1959 Invalid role specification `NONE`
|
Error 1959 Invalid role specification `NONE`
|
||||||
Error 1396 Operation DROP ROLE failed for CURRENT_ROLE
|
Error 1396 Operation DROP ROLE failed for CURRENT_ROLE
|
||||||
|
change_user root,,;
|
||||||
create role r1;
|
create role r1;
|
||||||
grant r1 to current_user;
|
grant r1 to current_user;
|
||||||
set role r1;
|
set role r1;
|
||||||
|
@@ -2,6 +2,7 @@ create user test_user@localhost;
|
|||||||
create role test_role;
|
create role test_role;
|
||||||
grant select on *.* to test_role;
|
grant select on *.* to test_role;
|
||||||
grant test_role to test_user@localhost;
|
grant test_role to test_user@localhost;
|
||||||
|
change_user test_user,,;
|
||||||
show grants;
|
show grants;
|
||||||
Grants for test_user@localhost
|
Grants for test_user@localhost
|
||||||
GRANT `test_role` TO `test_user`@`localhost`
|
GRANT `test_role` TO `test_user`@`localhost`
|
||||||
@@ -9,9 +10,11 @@ GRANT USAGE ON *.* TO `test_user`@`localhost`
|
|||||||
set default role test_role;
|
set default role test_role;
|
||||||
select user, host, default_role from mysql.user;
|
select user, host, default_role from mysql.user;
|
||||||
ERROR 42000: SELECT command denied to user 'test_user'@'localhost' for table `mysql`.`user`
|
ERROR 42000: SELECT command denied to user 'test_user'@'localhost' for table `mysql`.`user`
|
||||||
|
change_user root,,;
|
||||||
select user, host, default_role from mysql.user where user='test_user';
|
select user, host, default_role from mysql.user where user='test_user';
|
||||||
User Host default_role
|
User Host default_role
|
||||||
test_user localhost test_role
|
test_user localhost test_role
|
||||||
|
change_user test_user,,;
|
||||||
show grants;
|
show grants;
|
||||||
Grants for test_user@localhost
|
Grants for test_user@localhost
|
||||||
GRANT `test_role` TO `test_user`@`localhost`
|
GRANT `test_role` TO `test_user`@`localhost`
|
||||||
@@ -27,10 +30,13 @@ User Host default_role
|
|||||||
test_user localhost
|
test_user localhost
|
||||||
set default role invalid_role;
|
set default role invalid_role;
|
||||||
ERROR OP000: Invalid role specification `invalid_role`
|
ERROR OP000: Invalid role specification `invalid_role`
|
||||||
|
change_user root,,;
|
||||||
select user, host, default_role from mysql.user where user='test_user';
|
select user, host, default_role from mysql.user where user='test_user';
|
||||||
User Host default_role
|
User Host default_role
|
||||||
test_user localhost
|
test_user localhost
|
||||||
|
change_user test_user,,;
|
||||||
select user, host, default_role from mysql.user;
|
select user, host, default_role from mysql.user;
|
||||||
ERROR 42000: SELECT command denied to user 'test_user'@'localhost' for table `mysql`.`user`
|
ERROR 42000: SELECT command denied to user 'test_user'@'localhost' for table `mysql`.`user`
|
||||||
|
change_user root,,;
|
||||||
drop role test_role;
|
drop role test_role;
|
||||||
drop user test_user@localhost;
|
drop user test_user@localhost;
|
||||||
|
@@ -8,14 +8,17 @@ grant role_a to user_a@localhost;
|
|||||||
grant select on *.* to role_a;
|
grant select on *.* to role_a;
|
||||||
grant role_b to user_b@localhost;
|
grant role_b to user_b@localhost;
|
||||||
grant insert, update on *.* to role_b;
|
grant insert, update on *.* to role_b;
|
||||||
|
change_user user_a,,;
|
||||||
set default role role_a for user_b@localhost;
|
set default role role_a for user_b@localhost;
|
||||||
ERROR 42000: Access denied for user 'user_a'@'localhost' to database 'mysql'
|
ERROR 42000: Access denied for user 'user_a'@'localhost' to database 'mysql'
|
||||||
set default role role_a for user_a@localhost;
|
set default role role_a for user_a@localhost;
|
||||||
|
change_user root,,;
|
||||||
set default role invalid_role for user_a@localhost;
|
set default role invalid_role for user_a@localhost;
|
||||||
ERROR OP000: Invalid role specification `invalid_role`
|
ERROR OP000: Invalid role specification `invalid_role`
|
||||||
set default role role_b for user_a@localhost;
|
set default role role_b for user_a@localhost;
|
||||||
ERROR OP000: User `user_a`@`localhost` has not been granted role `role_b`
|
ERROR OP000: User `user_a`@`localhost` has not been granted role `role_b`
|
||||||
set default role role_b for user_b@localhost;
|
set default role role_b for user_b@localhost;
|
||||||
|
change_user user_a,,;
|
||||||
show grants;
|
show grants;
|
||||||
Grants for user_a@localhost
|
Grants for user_a@localhost
|
||||||
GRANT `role_a` TO `user_a`@`localhost`
|
GRANT `role_a` TO `user_a`@`localhost`
|
||||||
@@ -38,6 +41,7 @@ user_a localhost role_a
|
|||||||
user_b localhost role_b
|
user_b localhost role_b
|
||||||
set default role role_b for current_user;
|
set default role role_b for current_user;
|
||||||
ERROR OP000: User `user_a`@`localhost` has not been granted role `role_b`
|
ERROR OP000: User `user_a`@`localhost` has not been granted role `role_b`
|
||||||
|
change_user user_b,,;
|
||||||
show grants;
|
show grants;
|
||||||
Grants for user_b@localhost
|
Grants for user_b@localhost
|
||||||
GRANT `role_b` TO `user_b`@`localhost`
|
GRANT `role_b` TO `user_b`@`localhost`
|
||||||
@@ -47,6 +51,7 @@ SET DEFAULT ROLE `role_b` FOR `user_b`@`localhost`
|
|||||||
select user, host, default_role from mysql.user where user like 'user_%';
|
select user, host, default_role from mysql.user where user like 'user_%';
|
||||||
ERROR 42000: SELECT command denied to user 'user_b'@'localhost' for table `mysql`.`user`
|
ERROR 42000: SELECT command denied to user 'user_b'@'localhost' for table `mysql`.`user`
|
||||||
set default role NONE for user_a@localhost;
|
set default role NONE for user_a@localhost;
|
||||||
|
change_user user_a,,;
|
||||||
show grants;
|
show grants;
|
||||||
Grants for user_a@localhost
|
Grants for user_a@localhost
|
||||||
GRANT `role_a` TO `user_a`@`localhost`
|
GRANT `role_a` TO `user_a`@`localhost`
|
||||||
@@ -54,6 +59,7 @@ GRANT USAGE ON *.* TO `user_a`@`localhost`
|
|||||||
GRANT INSERT, UPDATE ON *.* TO `role_b`
|
GRANT INSERT, UPDATE ON *.* TO `role_b`
|
||||||
select user, host, default_role from mysql.user where user like 'user_%';
|
select user, host, default_role from mysql.user where user like 'user_%';
|
||||||
ERROR 42000: SELECT command denied to user 'user_a'@'localhost' for table `mysql`.`user`
|
ERROR 42000: SELECT command denied to user 'user_a'@'localhost' for table `mysql`.`user`
|
||||||
|
change_user root,,;
|
||||||
drop role role_a;
|
drop role role_a;
|
||||||
drop role role_b;
|
drop role role_b;
|
||||||
drop user user_a@localhost;
|
drop user user_a@localhost;
|
||||||
|
@@ -3,6 +3,7 @@ create role test_role;
|
|||||||
create role not_granted_role;
|
create role not_granted_role;
|
||||||
grant select on *.* to test_role;
|
grant select on *.* to test_role;
|
||||||
grant test_role to test_user@localhost;
|
grant test_role to test_user@localhost;
|
||||||
|
change_user test_user,,;
|
||||||
show grants;
|
show grants;
|
||||||
Grants for test_user@localhost
|
Grants for test_user@localhost
|
||||||
GRANT `test_role` TO `test_user`@`localhost`
|
GRANT `test_role` TO `test_user`@`localhost`
|
||||||
@@ -16,9 +17,11 @@ ERROR OP000: Invalid role specification `not_granted_role`
|
|||||||
set default role test_role;
|
set default role test_role;
|
||||||
select user, host, default_role from mysql.user;
|
select user, host, default_role from mysql.user;
|
||||||
ERROR 42000: SELECT command denied to user 'test_user'@'localhost' for table `mysql`.`user`
|
ERROR 42000: SELECT command denied to user 'test_user'@'localhost' for table `mysql`.`user`
|
||||||
|
change_user root,,;
|
||||||
select user, host, default_role from mysql.user where user='test_user';
|
select user, host, default_role from mysql.user where user='test_user';
|
||||||
User Host default_role
|
User Host default_role
|
||||||
test_user localhost test_role
|
test_user localhost test_role
|
||||||
|
change_user test_user,,;
|
||||||
show grants;
|
show grants;
|
||||||
Grants for test_user@localhost
|
Grants for test_user@localhost
|
||||||
GRANT `test_role` TO `test_user`@`localhost`
|
GRANT `test_role` TO `test_user`@`localhost`
|
||||||
@@ -33,9 +36,12 @@ ERROR OP000: Invalid role specification `invalid_role`
|
|||||||
select user, host, default_role from mysql.user where user='test_user';
|
select user, host, default_role from mysql.user where user='test_user';
|
||||||
User Host default_role
|
User Host default_role
|
||||||
test_user localhost test_role
|
test_user localhost test_role
|
||||||
|
change_user root,,;
|
||||||
revoke test_role from test_user@localhost;
|
revoke test_role from test_user@localhost;
|
||||||
|
change_user test_user,,;
|
||||||
select user, host, default_role from mysql.user where user='test_user';
|
select user, host, default_role from mysql.user where user='test_user';
|
||||||
ERROR 42000: SELECT command denied to user 'test_user'@'localhost' for table `mysql`.`user`
|
ERROR 42000: SELECT command denied to user 'test_user'@'localhost' for table `mysql`.`user`
|
||||||
|
change_user root,,;
|
||||||
drop role test_role;
|
drop role test_role;
|
||||||
drop role not_granted_role;
|
drop role not_granted_role;
|
||||||
drop user test_user@localhost;
|
drop user test_user@localhost;
|
||||||
@@ -53,6 +59,7 @@ GRANT r1 TO b;
|
|||||||
GRANT r2 TO b;
|
GRANT r2 TO b;
|
||||||
SET DEFAULT ROLE r1 FOR b;
|
SET DEFAULT ROLE r1 FOR b;
|
||||||
# Change user b
|
# Change user b
|
||||||
|
change_user b,,;
|
||||||
SELECT CURRENT_ROLE;
|
SELECT CURRENT_ROLE;
|
||||||
CURRENT_ROLE
|
CURRENT_ROLE
|
||||||
r1
|
r1
|
||||||
@@ -64,8 +71,10 @@ SET DEFAULT ROLE r1 FOR a;
|
|||||||
ERROR 42000: Access denied for user 'b'@'%' to database 'mysql'
|
ERROR 42000: Access denied for user 'b'@'%' to database 'mysql'
|
||||||
SET DEFAULT ROLE r2;
|
SET DEFAULT ROLE r2;
|
||||||
# Change user root (session 1: select_priv to b)
|
# Change user root (session 1: select_priv to b)
|
||||||
|
change_user root,,;
|
||||||
GRANT SELECT ON mysql.* TO b;
|
GRANT SELECT ON mysql.* TO b;
|
||||||
# Change user b (session 1: select_priv)
|
# Change user b (session 1: select_priv)
|
||||||
|
change_user b,,;
|
||||||
SHOW GRANTS FOR b;
|
SHOW GRANTS FOR b;
|
||||||
Grants for b@%
|
Grants for b@%
|
||||||
GRANT `r1` TO `b`@`%`
|
GRANT `r1` TO `b`@`%`
|
||||||
@@ -90,8 +99,10 @@ ERROR 42000: Access denied for user 'b'@'%' to database 'mysql'
|
|||||||
SET DEFAULT ROLE none FOR a;
|
SET DEFAULT ROLE none FOR a;
|
||||||
ERROR 42000: Access denied for user 'b'@'%' to database 'mysql'
|
ERROR 42000: Access denied for user 'b'@'%' to database 'mysql'
|
||||||
# Change user root (session 2: adding update_priv to user b)
|
# Change user root (session 2: adding update_priv to user b)
|
||||||
|
change_user root,,;
|
||||||
GRANT UPDATE ON mysql.* TO b;
|
GRANT UPDATE ON mysql.* TO b;
|
||||||
# Change user b
|
# Change user b
|
||||||
|
change_user b,,;
|
||||||
SHOW GRANTS FOR b;
|
SHOW GRANTS FOR b;
|
||||||
Grants for b@%
|
Grants for b@%
|
||||||
GRANT `r1` TO `b`@`%`
|
GRANT `r1` TO `b`@`%`
|
||||||
@@ -107,14 +118,17 @@ SET DEFAULT ROLE invalid_role FOR a;
|
|||||||
ERROR OP000: Invalid role specification `invalid_role`
|
ERROR OP000: Invalid role specification `invalid_role`
|
||||||
SET DEFAULT ROLE none FOR a;
|
SET DEFAULT ROLE none FOR a;
|
||||||
# Change user root (session 3: Grant role to user a)
|
# Change user root (session 3: Grant role to user a)
|
||||||
|
change_user root,,;
|
||||||
GRANT r1 TO a;
|
GRANT r1 TO a;
|
||||||
SET DEFAULT ROLE r1 FOR a;
|
SET DEFAULT ROLE r1 FOR a;
|
||||||
# Change user a (verify session 3)
|
# Change user a (verify session 3)
|
||||||
|
change_user a,,;
|
||||||
SELECT CURRENT_ROLE;
|
SELECT CURRENT_ROLE;
|
||||||
CURRENT_ROLE
|
CURRENT_ROLE
|
||||||
r1
|
r1
|
||||||
SET DEFAULT ROLE None;
|
SET DEFAULT ROLE None;
|
||||||
# Change user b (session 3: role granted to user a)
|
# Change user b (session 3: role granted to user a)
|
||||||
|
change_user b,,;
|
||||||
SET DEFAULT ROLE r1 FOR a;
|
SET DEFAULT ROLE r1 FOR a;
|
||||||
SET DEFAULT ROLE r2 FOR a;
|
SET DEFAULT ROLE r2 FOR a;
|
||||||
ERROR OP000: User `a`@`%` has not been granted role `r2`
|
ERROR OP000: User `a`@`%` has not been granted role `r2`
|
||||||
@@ -122,6 +136,7 @@ SET DEFAULT ROLE invalid_role;
|
|||||||
ERROR OP000: Invalid role specification `invalid_role`
|
ERROR OP000: Invalid role specification `invalid_role`
|
||||||
SET DEFAULT ROLE invalid_role FOR a;
|
SET DEFAULT ROLE invalid_role FOR a;
|
||||||
ERROR OP000: Invalid role specification `invalid_role`
|
ERROR OP000: Invalid role specification `invalid_role`
|
||||||
|
change_user root,,;
|
||||||
SELECT user, host, default_role FROM mysql.user where user='a' or user='b';
|
SELECT user, host, default_role FROM mysql.user where user='a' or user='b';
|
||||||
User Host default_role
|
User Host default_role
|
||||||
a % r1
|
a % r1
|
||||||
|
@@ -21,6 +21,7 @@ select user, host from mysql.db;
|
|||||||
user host
|
user host
|
||||||
grant select on mysql.* to test_role2;
|
grant select on mysql.* to test_role2;
|
||||||
flush privileges;
|
flush privileges;
|
||||||
|
change_user test_user,,;
|
||||||
select * from mysql.roles_mapping;
|
select * from mysql.roles_mapping;
|
||||||
ERROR 42000: SELECT command denied to user 'test_user'@'localhost' for table `mysql`.`roles_mapping`
|
ERROR 42000: SELECT command denied to user 'test_user'@'localhost' for table `mysql`.`roles_mapping`
|
||||||
select current_user(), current_role();
|
select current_user(), current_role();
|
||||||
@@ -54,14 +55,18 @@ localhost root test_role1 Y
|
|||||||
localhost root test_role2 Y
|
localhost root test_role2 Y
|
||||||
localhost test_user test_role1 N
|
localhost test_user test_role1 N
|
||||||
localhost test_user test_role2 N
|
localhost test_user test_role2 N
|
||||||
|
change_user root,,;
|
||||||
create role test_role3;
|
create role test_role3;
|
||||||
grant test_role3 to test_role2;
|
grant test_role3 to test_role2;
|
||||||
create role test_role4;
|
create role test_role4;
|
||||||
grant test_role4 to test_role3;
|
grant test_role4 to test_role3;
|
||||||
|
change_user test_user,,;
|
||||||
set role test_role1;
|
set role test_role1;
|
||||||
delete from mysql.user where user='no such user';
|
delete from mysql.user where user='no such user';
|
||||||
ERROR 42000: DELETE command denied to user 'test_user'@'localhost' for table `mysql`.`user`
|
ERROR 42000: DELETE command denied to user 'test_user'@'localhost' for table `mysql`.`user`
|
||||||
|
change_user root,,;
|
||||||
grant delete on mysql.* to test_role4;
|
grant delete on mysql.* to test_role4;
|
||||||
|
change_user test_user,,;
|
||||||
set role test_role1;
|
set role test_role1;
|
||||||
delete from mysql.user where user='no such user';
|
delete from mysql.user where user='no such user';
|
||||||
show grants;
|
show grants;
|
||||||
@@ -78,5 +83,6 @@ GRANT `test_role2` TO `test_role1`
|
|||||||
GRANT `test_role2` TO `test_user`@`localhost`
|
GRANT `test_role2` TO `test_user`@`localhost`
|
||||||
GRANT `test_role3` TO `test_role2`
|
GRANT `test_role3` TO `test_role2`
|
||||||
GRANT `test_role4` TO `test_role3`
|
GRANT `test_role4` TO `test_role3`
|
||||||
|
change_user root,,;
|
||||||
drop user test_user@localhost;
|
drop user test_user@localhost;
|
||||||
drop role test_role1, test_role2, test_role3, test_role4;
|
drop role test_role1, test_role2, test_role3, test_role4;
|
||||||
|
@@ -13,6 +13,7 @@ localhost test_user test_role1 N
|
|||||||
grant select on mysql.* to test_role1;
|
grant select on mysql.* to test_role1;
|
||||||
grant insert, delete on mysql.roles_mapping to test_role1;
|
grant insert, delete on mysql.roles_mapping to test_role1;
|
||||||
grant reload on *.* to test_role1;
|
grant reload on *.* to test_role1;
|
||||||
|
change_user test_user,,;
|
||||||
select * from mysql.roles_mapping;
|
select * from mysql.roles_mapping;
|
||||||
ERROR 42000: SELECT command denied to user 'test_user'@'localhost' for table `mysql`.`roles_mapping`
|
ERROR 42000: SELECT command denied to user 'test_user'@'localhost' for table `mysql`.`roles_mapping`
|
||||||
select current_user(), current_role();
|
select current_user(), current_role();
|
||||||
@@ -45,6 +46,7 @@ insert into mysql.roles_mapping values ('localhost', 'test_user', 'test_role2',
|
|||||||
ERROR 42000: INSERT command denied to user 'test_user'@'localhost' for table `mysql`.`roles_mapping`
|
ERROR 42000: INSERT command denied to user 'test_user'@'localhost' for table `mysql`.`roles_mapping`
|
||||||
delete from mysql.roles_mapping where Role='test_role2';
|
delete from mysql.roles_mapping where Role='test_role2';
|
||||||
ERROR 42000: DELETE command denied to user 'test_user'@'localhost' for table `mysql`.`roles_mapping`
|
ERROR 42000: DELETE command denied to user 'test_user'@'localhost' for table `mysql`.`roles_mapping`
|
||||||
|
change_user root,,;
|
||||||
drop user 'test_user'@'localhost';
|
drop user 'test_user'@'localhost';
|
||||||
revoke select on mysql.* from test_role1;
|
revoke select on mysql.* from test_role1;
|
||||||
revoke insert, delete on mysql.roles_mapping from test_role1;
|
revoke insert, delete on mysql.roles_mapping from test_role1;
|
||||||
|
@@ -21,6 +21,7 @@ grant r_crt to test_user@localhost;
|
|||||||
grant r_drp to test_user@localhost;
|
grant r_drp to test_user@localhost;
|
||||||
grant r_rld to test_user@localhost;
|
grant r_rld to test_user@localhost;
|
||||||
flush privileges;
|
flush privileges;
|
||||||
|
change_user test_user,,;
|
||||||
select * from mysql.roles_mapping;
|
select * from mysql.roles_mapping;
|
||||||
ERROR 42000: SELECT command denied to user 'test_user'@'localhost' for table `mysql`.`roles_mapping`
|
ERROR 42000: SELECT command denied to user 'test_user'@'localhost' for table `mysql`.`roles_mapping`
|
||||||
show grants;
|
show grants;
|
||||||
@@ -141,6 +142,7 @@ test_user@localhost r_sel
|
|||||||
insert into mysql.random_test_table values (1);
|
insert into mysql.random_test_table values (1);
|
||||||
ERROR 42000: INSERT command denied to user 'test_user'@'localhost' for table `mysql`.`random_test_table`
|
ERROR 42000: INSERT command denied to user 'test_user'@'localhost' for table `mysql`.`random_test_table`
|
||||||
drop table mysql.random_test_table;
|
drop table mysql.random_test_table;
|
||||||
|
change_user root,,;
|
||||||
delete from mysql.user where user like 'r\_%';
|
delete from mysql.user where user like 'r\_%';
|
||||||
delete from mysql.roles_mapping where Role like 'r\_%';
|
delete from mysql.roles_mapping where Role like 'r\_%';
|
||||||
flush privileges;
|
flush privileges;
|
||||||
|
@@ -22,6 +22,7 @@ Host User Password Select_priv Insert_priv Update_priv Delete_priv Create_priv D
|
|||||||
select * from mysql.user where user like 'test_role2';
|
select * from mysql.user where user like 'test_role2';
|
||||||
Host User Password Select_priv Insert_priv Update_priv Delete_priv Create_priv Drop_priv Reload_priv Shutdown_priv Process_priv File_priv Grant_priv References_priv Index_priv Alter_priv Show_db_priv Super_priv Create_tmp_table_priv Lock_tables_priv Execute_priv Repl_slave_priv Repl_client_priv Create_view_priv Show_view_priv Create_routine_priv Alter_routine_priv Create_user_priv Event_priv Trigger_priv Create_tablespace_priv Delete_history_priv ssl_type ssl_cipher x509_issuer x509_subject max_questions max_updates max_connections max_user_connections plugin authentication_string password_expired is_role default_role max_statement_time
|
Host User Password Select_priv Insert_priv Update_priv Delete_priv Create_priv Drop_priv Reload_priv Shutdown_priv Process_priv File_priv Grant_priv References_priv Index_priv Alter_priv Show_db_priv Super_priv Create_tmp_table_priv Lock_tables_priv Execute_priv Repl_slave_priv Repl_client_priv Create_view_priv Show_view_priv Create_routine_priv Alter_routine_priv Create_user_priv Event_priv Trigger_priv Create_tablespace_priv Delete_history_priv ssl_type ssl_cipher x509_issuer x509_subject max_questions max_updates max_connections max_user_connections plugin authentication_string password_expired is_role default_role max_statement_time
|
||||||
test_role2 Y N N N N N N N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0 N Y 0.000000
|
test_role2 Y N N N N N N N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0 N Y 0.000000
|
||||||
|
change_user test_user,,;
|
||||||
select * from mysql.roles_mapping;
|
select * from mysql.roles_mapping;
|
||||||
ERROR 42000: SELECT command denied to user 'test_user'@'localhost' for table `mysql`.`roles_mapping`
|
ERROR 42000: SELECT command denied to user 'test_user'@'localhost' for table `mysql`.`roles_mapping`
|
||||||
show grants;
|
show grants;
|
||||||
@@ -112,6 +113,7 @@ GRANT USAGE ON *.* TO `test_user`@`localhost`
|
|||||||
GRANT `test_role1` TO `test_user`@`localhost`
|
GRANT `test_role1` TO `test_user`@`localhost`
|
||||||
select * from mysql.roles_mapping;
|
select * from mysql.roles_mapping;
|
||||||
ERROR 42000: SELECT command denied to user 'test_user'@'localhost' for table `mysql`.`roles_mapping`
|
ERROR 42000: SELECT command denied to user 'test_user'@'localhost' for table `mysql`.`roles_mapping`
|
||||||
|
change_user root,,;
|
||||||
delete from mysql.user where user='test_role1';
|
delete from mysql.user where user='test_role1';
|
||||||
delete from mysql.user where user='test_role2';
|
delete from mysql.user where user='test_role2';
|
||||||
delete from mysql.roles_mapping;
|
delete from mysql.roles_mapping;
|
||||||
|
@@ -30,6 +30,7 @@ end|
|
|||||||
grant execute on function mysql.test_func to test_role2;
|
grant execute on function mysql.test_func to test_role2;
|
||||||
grant execute on procedure mysql.test_proc to test_role2;
|
grant execute on procedure mysql.test_proc to test_role2;
|
||||||
grant execute on mysql.* to test_role3;
|
grant execute on mysql.* to test_role3;
|
||||||
|
change_user test_user,,;
|
||||||
show grants;
|
show grants;
|
||||||
Grants for test_user@localhost
|
Grants for test_user@localhost
|
||||||
GRANT USAGE ON *.* TO `test_user`@`localhost`
|
GRANT USAGE ON *.* TO `test_user`@`localhost`
|
||||||
@@ -93,6 +94,7 @@ SELECT @a;
|
|||||||
SELECT test_func('AABBCCDD');
|
SELECT test_func('AABBCCDD');
|
||||||
test_func('AABBCCDD')
|
test_func('AABBCCDD')
|
||||||
Test string: AABBCCDD
|
Test string: AABBCCDD
|
||||||
|
change_user root,,;
|
||||||
drop user 'test_user'@'localhost';
|
drop user 'test_user'@'localhost';
|
||||||
revoke execute on function mysql.test_func from test_role2;
|
revoke execute on function mysql.test_func from test_role2;
|
||||||
revoke execute on procedure mysql.test_proc from test_role2;
|
revoke execute on procedure mysql.test_proc from test_role2;
|
||||||
|
@@ -14,6 +14,7 @@ grant select on *.* to test_role1;
|
|||||||
select * from mysql.user where user='test_role1';
|
select * from mysql.user where user='test_role1';
|
||||||
Host User Password Select_priv Insert_priv Update_priv Delete_priv Create_priv Drop_priv Reload_priv Shutdown_priv Process_priv File_priv Grant_priv References_priv Index_priv Alter_priv Show_db_priv Super_priv Create_tmp_table_priv Lock_tables_priv Execute_priv Repl_slave_priv Repl_client_priv Create_view_priv Show_view_priv Create_routine_priv Alter_routine_priv Create_user_priv Event_priv Trigger_priv Create_tablespace_priv Delete_history_priv ssl_type ssl_cipher x509_issuer x509_subject max_questions max_updates max_connections max_user_connections plugin authentication_string password_expired is_role default_role max_statement_time
|
Host User Password Select_priv Insert_priv Update_priv Delete_priv Create_priv Drop_priv Reload_priv Shutdown_priv Process_priv File_priv Grant_priv References_priv Index_priv Alter_priv Show_db_priv Super_priv Create_tmp_table_priv Lock_tables_priv Execute_priv Repl_slave_priv Repl_client_priv Create_view_priv Show_view_priv Create_routine_priv Alter_routine_priv Create_user_priv Event_priv Trigger_priv Create_tablespace_priv Delete_history_priv ssl_type ssl_cipher x509_issuer x509_subject max_questions max_updates max_connections max_user_connections plugin authentication_string password_expired is_role default_role max_statement_time
|
||||||
test_role1 Y N N N N N N N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0 N Y 0.000000
|
test_role1 Y N N N N N N N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0 N Y 0.000000
|
||||||
|
change_user test_user,,;
|
||||||
select * from mysql.roles_mapping;
|
select * from mysql.roles_mapping;
|
||||||
ERROR 42000: SELECT command denied to user 'test_user'@'localhost' for table `mysql`.`roles_mapping`
|
ERROR 42000: SELECT command denied to user 'test_user'@'localhost' for table `mysql`.`roles_mapping`
|
||||||
show grants;
|
show grants;
|
||||||
@@ -42,6 +43,7 @@ current_user() current_role()
|
|||||||
test_user@localhost NULL
|
test_user@localhost NULL
|
||||||
select * from mysql.roles_mapping;
|
select * from mysql.roles_mapping;
|
||||||
ERROR 42000: SELECT command denied to user 'test_user'@'localhost' for table `mysql`.`roles_mapping`
|
ERROR 42000: SELECT command denied to user 'test_user'@'localhost' for table `mysql`.`roles_mapping`
|
||||||
|
change_user root,,;
|
||||||
delete from mysql.user where user='test_role1';
|
delete from mysql.user where user='test_role1';
|
||||||
delete from mysql.roles_mapping where Role='test_role1';
|
delete from mysql.roles_mapping where Role='test_role1';
|
||||||
flush privileges;
|
flush privileges;
|
||||||
|
@@ -16,6 +16,7 @@ localhost root test_role1 Y
|
|||||||
localhost root test_role2 Y
|
localhost root test_role2 Y
|
||||||
localhost test_user test_role1 N
|
localhost test_user test_role1 N
|
||||||
grant select (Role) on mysql.roles_mapping to test_role2;
|
grant select (Role) on mysql.roles_mapping to test_role2;
|
||||||
|
change_user test_user,,;
|
||||||
select * from mysql.roles_mapping;
|
select * from mysql.roles_mapping;
|
||||||
ERROR 42000: SELECT command denied to user 'test_user'@'localhost' for table `mysql`.`roles_mapping`
|
ERROR 42000: SELECT command denied to user 'test_user'@'localhost' for table `mysql`.`roles_mapping`
|
||||||
show grants;
|
show grants;
|
||||||
@@ -60,6 +61,7 @@ current_user() current_role()
|
|||||||
test_user@localhost NULL
|
test_user@localhost NULL
|
||||||
select Role from mysql.roles_mapping;
|
select Role from mysql.roles_mapping;
|
||||||
ERROR 42000: SELECT command denied to user 'test_user'@'localhost' for table `mysql`.`roles_mapping`
|
ERROR 42000: SELECT command denied to user 'test_user'@'localhost' for table `mysql`.`roles_mapping`
|
||||||
|
change_user root,,;
|
||||||
drop user 'test_user'@'localhost';
|
drop user 'test_user'@'localhost';
|
||||||
select * from mysql.tables_priv;
|
select * from mysql.tables_priv;
|
||||||
Host Db User Table_name Grantor Timestamp Table_priv Column_priv
|
Host Db User Table_name Grantor Timestamp Table_priv Column_priv
|
||||||
|
@@ -16,6 +16,7 @@ localhost root test_role1 Y
|
|||||||
localhost root test_role2 Y
|
localhost root test_role2 Y
|
||||||
localhost test_user test_role1 N
|
localhost test_user test_role1 N
|
||||||
grant select on mysql.roles_mapping to test_role2;
|
grant select on mysql.roles_mapping to test_role2;
|
||||||
|
change_user test_user,,;
|
||||||
select * from mysql.roles_mapping;
|
select * from mysql.roles_mapping;
|
||||||
ERROR 42000: SELECT command denied to user 'test_user'@'localhost' for table `mysql`.`roles_mapping`
|
ERROR 42000: SELECT command denied to user 'test_user'@'localhost' for table `mysql`.`roles_mapping`
|
||||||
show grants;
|
show grants;
|
||||||
@@ -58,6 +59,7 @@ current_user() current_role()
|
|||||||
test_user@localhost NULL
|
test_user@localhost NULL
|
||||||
select * from mysql.roles_mapping;
|
select * from mysql.roles_mapping;
|
||||||
ERROR 42000: SELECT command denied to user 'test_user'@'localhost' for table `mysql`.`roles_mapping`
|
ERROR 42000: SELECT command denied to user 'test_user'@'localhost' for table `mysql`.`roles_mapping`
|
||||||
|
change_user root,,;
|
||||||
drop user 'test_user'@'localhost';
|
drop user 'test_user'@'localhost';
|
||||||
select * from mysql.tables_priv;
|
select * from mysql.tables_priv;
|
||||||
Host Db User Table_name Grantor Timestamp Table_priv Column_priv
|
Host Db User Table_name Grantor Timestamp Table_priv Column_priv
|
||||||
|
@@ -26,6 +26,7 @@ GRANTEE ROLE_NAME IS_GRANTABLE IS_DEFAULT
|
|||||||
root@localhost test_role1 YES NO
|
root@localhost test_role1 YES NO
|
||||||
root@localhost test_role2 YES NO
|
root@localhost test_role2 YES NO
|
||||||
test_role1 test_role2 NO NULL
|
test_role1 test_role2 NO NULL
|
||||||
|
change_user test_user,,;
|
||||||
select * from information_schema.applicable_roles;
|
select * from information_schema.applicable_roles;
|
||||||
GRANTEE ROLE_NAME IS_GRANTABLE IS_DEFAULT
|
GRANTEE ROLE_NAME IS_GRANTABLE IS_DEFAULT
|
||||||
test_role1 test_role2 NO NULL
|
test_role1 test_role2 NO NULL
|
||||||
@@ -138,6 +139,7 @@ show grants for CURRENT_ROLE();
|
|||||||
Grants for test_role2
|
Grants for test_role2
|
||||||
GRANT SELECT ON `mysql`.* TO `test_role2`
|
GRANT SELECT ON `mysql`.* TO `test_role2`
|
||||||
GRANT USAGE ON *.* TO `test_role2`
|
GRANT USAGE ON *.* TO `test_role2`
|
||||||
|
change_user root,,;
|
||||||
drop user 'test_user'@'localhost';
|
drop user 'test_user'@'localhost';
|
||||||
revoke select on mysql.* from test_role2;
|
revoke select on mysql.* from test_role2;
|
||||||
drop role test_role1;
|
drop role test_role1;
|
||||||
|
@@ -277,19 +277,23 @@ ERROR HY000: The MariaDB server is running with the --secure-timestamp=YES optio
|
|||||||
# restart: --secure-timestamp=REPLICATION
|
# restart: --secure-timestamp=REPLICATION
|
||||||
create user nobody;
|
create user nobody;
|
||||||
grant all privileges on test.* to nobody;
|
grant all privileges on test.* to nobody;
|
||||||
|
change_user nobody,,;
|
||||||
set @@system_versioning_insert_history= 1;
|
set @@system_versioning_insert_history= 1;
|
||||||
insert into test.t3(z, row_start, row_end) values (9, '1980-01-01 00:00:00', '1980-01-01 00:00:01');
|
insert into test.t3(z, row_start, row_end) values (9, '1980-01-01 00:00:00', '1980-01-01 00:00:01');
|
||||||
ERROR 42000: Access denied; you need (at least one of) the BINLOG REPLAY privilege(s) for this operation
|
ERROR 42000: Access denied; you need (at least one of) the BINLOG REPLAY privilege(s) for this operation
|
||||||
insert into test.t3 values (9, '1980-01-01 00:00:00', '1980-01-01 00:00:01');
|
insert into test.t3 values (9, '1980-01-01 00:00:00', '1980-01-01 00:00:01');
|
||||||
ERROR 42000: Access denied; you need (at least one of) the BINLOG REPLAY privilege(s) for this operation
|
ERROR 42000: Access denied; you need (at least one of) the BINLOG REPLAY privilege(s) for this operation
|
||||||
|
change_user root,,;
|
||||||
# restart: --secure-timestamp=SUPER
|
# restart: --secure-timestamp=SUPER
|
||||||
set @@system_versioning_insert_history= 1;
|
set @@system_versioning_insert_history= 1;
|
||||||
insert into test.t3(z, row_start, row_end) values (10, '1980-01-01 00:00:00', '1980-01-01 00:00:01');
|
insert into test.t3(z, row_start, row_end) values (10, '1980-01-01 00:00:00', '1980-01-01 00:00:01');
|
||||||
|
change_user nobody,,;
|
||||||
set @@system_versioning_insert_history= 1;
|
set @@system_versioning_insert_history= 1;
|
||||||
insert into test.t3(z, row_start, row_end) values (7, '1980-01-01 00:00:00', '1980-01-01 00:00:01');
|
insert into test.t3(z, row_start, row_end) values (7, '1980-01-01 00:00:00', '1980-01-01 00:00:01');
|
||||||
ERROR 42000: Access denied; you need (at least one of) the SUPER, BINLOG REPLAY privilege(s) for this operation
|
ERROR 42000: Access denied; you need (at least one of) the SUPER, BINLOG REPLAY privilege(s) for this operation
|
||||||
insert into test.t3 values (7, '1980-01-01 00:00:00', '1980-01-01 00:00:01');
|
insert into test.t3 values (7, '1980-01-01 00:00:00', '1980-01-01 00:00:01');
|
||||||
ERROR 42000: Access denied; you need (at least one of) the SUPER, BINLOG REPLAY privilege(s) for this operation
|
ERROR 42000: Access denied; you need (at least one of) the SUPER, BINLOG REPLAY privilege(s) for this operation
|
||||||
|
change_user root,,;
|
||||||
use test;
|
use test;
|
||||||
# restart: --secure-timestamp=NO
|
# restart: --secure-timestamp=NO
|
||||||
drop tables t1, t2, t3;
|
drop tables t1, t2, t3;
|
||||||
|
Reference in New Issue
Block a user