97 lines
3.4 KiB
Plaintext
97 lines
3.4 KiB
Plaintext
--source include/have_log_bin.inc
|
|
--source include/save_binlog_position.inc
|
|
|
|
# Save the initial number of concurrent sessions
|
|
--source include/count_sessions.inc
|
|
|
|
--echo # -----------------------------------------------------------------------
|
|
|
|
--echo # Begin : Tests for RENAME USER
|
|
|
|
CREATE USER userX, userY, userZ;
|
|
|
|
SELECT user, authentication_string FROM mysql.user WHERE user like 'user%';
|
|
--source include/save_binlog_position.inc
|
|
|
|
--echo # Modify multiple users
|
|
RENAME USER userX TO userA, userY TO userB, userZ TO userC;
|
|
|
|
--echo # Must show userA, userB, userC
|
|
SELECT user, authentication_string FROM mysql.user WHERE user like 'user%';
|
|
|
|
--let $event= !Q(RENAME USER.*userX.TO.*userA.*,.*userY.*TO.*userB.*,.*userZ.*TO.*userC.*)
|
|
--source ../include/auth_sec_assert_binlog_events.inc
|
|
--source include/save_binlog_position.inc
|
|
|
|
--echo # Try renaming a non-existent user
|
|
--error ER_CANNOT_USER
|
|
RENAME USER userA TO userX, user_ne1 TO user_ne2, userC TO userZ;
|
|
|
|
--echo # Must show userA, userB, userC
|
|
SELECT user, authentication_string FROM mysql.user WHERE user like 'user%';
|
|
|
|
--let $invert= 1
|
|
--let $event= !Q(RENAME USER.*userA.*TO.*userX.*,.*user_ne1.*TO.*user_ne2.*,.*userC.*TO.*userZ.*)
|
|
--source ../include/auth_sec_assert_binlog_events.inc
|
|
--let $invert= 0
|
|
|
|
--echo # Insert an entry in mysql.user table but do not execute FLUSH PRIVILEGES
|
|
CREATE TABLE mysql.tmp_user LIKE mysql.user;
|
|
INSERT INTO mysql.tmp_user SELECT * FROM mysql.user WHERE user LIKE 'userC';
|
|
UPDATE mysql.tmp_user SET user='userZ' WHERE user LIKE 'userC';
|
|
INSERT INTO mysql.user SELECT * FROM mysql.tmp_user;
|
|
DROP TABLE mysql.tmp_user;
|
|
|
|
--source include/save_binlog_position.inc
|
|
|
|
--echo # Though userX is not present in cache, RENAME should check in mysql.user
|
|
--echo # table for the presence of an entry which may create problem while
|
|
--echo # renaming users.
|
|
|
|
--error ER_CANNOT_USER
|
|
RENAME USER userA TO userX, userB TO userY, userC TO userZ;
|
|
|
|
--echo # Must show userA, userB, userC and userZ
|
|
SELECT user, authentication_string FROM mysql.user WHERE user like 'user%';
|
|
|
|
--let $invert= 1
|
|
--let $event= !Q(RENAME USER.*userA.*TO.*userX.*,.*userB.*TO.*userY.*,.*userC.*TO.*userZ.*)
|
|
--source ../include/auth_sec_assert_binlog_events.inc
|
|
--let $invert= 0
|
|
|
|
FLUSH PRIVILEGES;
|
|
--source include/save_binlog_position.inc
|
|
|
|
--echo # Try renaming two different user and use same user as target
|
|
--error ER_CANNOT_USER
|
|
RENAME USER userA TO userX, userB TO userX;
|
|
|
|
--echo # Must show userA, userB, userC
|
|
SELECT user, authentication_string FROM mysql.user WHERE user like 'user%';
|
|
|
|
--let $invert= 1
|
|
--let $event= !Q(RENAME USER.*userA.*TO.*userX.*,.*userB.*TO.*userX.*)
|
|
--source ../include/auth_sec_assert_binlog_events.inc
|
|
--let $invert= 0
|
|
|
|
--echo # This should succeed
|
|
RENAME USER userA TO userX, userB TO userA, userZ TO userB, userC TO userZ;
|
|
|
|
--echo # Must show userA, userB, userX and userZ
|
|
SELECT user, authentication_string FROM mysql.user WHERE user like 'user%';
|
|
|
|
--let $event= !Q(RENAME USER.*userA.*TO.*userX.*,.*userB.*TO.*userA.*,.*userZ.*TO.*userB.*,.*userC.*TO.*userZ.*)
|
|
--source ../include/auth_sec_assert_binlog_events.inc
|
|
--source include/save_binlog_position.inc
|
|
|
|
DROP USER userA, userB, userX, userZ;
|
|
|
|
--source include/save_binlog_position.inc
|
|
|
|
--echo # End : Tests for RENAME USER
|
|
|
|
--echo # -----------------------------------------------------------------------
|
|
|
|
# Wait till we reached the initial number of concurrent sessions
|
|
--source include/wait_until_count_sessions.inc
|