diff options
author | Sergei Golubchik <serg@mariadb.org> | 2019-01-09 20:24:34 +0100 |
---|---|---|
committer | Sergei Golubchik <serg@mariadb.org> | 2019-02-04 15:54:10 +0100 |
commit | 3ab445819e622fb5e09baf2153db26d10f2c8a29 (patch) | |
tree | 2a881338203db5b1ad9a5d2d84340f789488d095 /mysql-test/main | |
parent | eeaaf4a845268fe13c05a0cef4e79722d5835958 (diff) | |
download | mariadb-git-3ab445819e622fb5e09baf2153db26d10f2c8a29.tar.gz |
MDEV-18119 upgrading from 10.3 to 10.4 can result in the password for a user to be wiped ou
Diffstat (limited to 'mysql-test/main')
-rw-r--r-- | mysql-test/main/mysql_upgrade.result | 41 | ||||
-rw-r--r-- | mysql-test/main/mysql_upgrade.test | 35 |
2 files changed, 67 insertions, 9 deletions
diff --git a/mysql-test/main/mysql_upgrade.result b/mysql-test/main/mysql_upgrade.result index a99895f53d7..9fcf76d2b1c 100644 --- a/mysql-test/main/mysql_upgrade.result +++ b/mysql-test/main/mysql_upgrade.result @@ -316,7 +316,7 @@ Grants for user3@% GRANT USAGE ON *.* TO 'user3'@'%' GRANT ALL PRIVILEGES ON `roelt`.`test2` TO 'user3'@'%' DROP USER 'user3'@'%'; -End of 5.1 tests +# End of 5.1 tests The --upgrade-system-tables option was used, user tables won't be touched. Phase 1/7: Checking and upgrading mysql database Processing databases @@ -505,7 +505,7 @@ length(table_name) 79 79 drop table extralongname_extralongname_extralongname_extralongname_ext; -End of 10.0 tests +# End of 10.0 tests set sql_mode=default; # Droping the previously created mysql_upgrade_info file.. create table test.t1(a int) engine=MyISAM; @@ -569,8 +569,8 @@ t1 CREATE TABLE `t1` ( ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE test.t1; SET GLOBAL enforce_storage_engine=NULL; -End of 10.1 tests -Start of 10.3 tests +# End of 10.1 tests +# End of 10.2 tests # # Ensure that mysql_upgrade correctly sets truncate_versioning_priv # on upgrade from 10.2 @@ -591,3 +591,36 @@ DROP USER 'user3'@'%'; update mysql.db set Delete_history_priv='Y' where db like 'test%'; drop table mysql.global_priv; rename table mysql.global_priv_bak to mysql.global_priv; +# End of 10.3 tests +drop view mysql.user_bak; +create user 'user3'@'localhost' identified with mysql_native_password as password('a_password'); +show create user user3@localhost; +CREATE USER for user3@localhost +CREATE USER 'user3'@'localhost' IDENTIFIED BY PASSWORD '*5DC1D11F45824A9DD613961F05C1EC1E7A1601AA' +update mysql.user set password=authentication_string, authentication_string='' where user='user3'; +select password,plugin,authentication_string from mysql.user where user='user3'; +password plugin authentication_string +*5DC1D11F45824A9DD613961F05C1EC1E7A1601AA mysql_native_password +flush privileges; +show create user user3@localhost; +CREATE USER for user3@localhost +CREATE USER 'user3'@'localhost' IDENTIFIED BY PASSWORD '*5DC1D11F45824A9DD613961F05C1EC1E7A1601AA' +connect con1,localhost,user3,a_password; +select current_user(); +current_user() +user3@localhost +disconnect con1; +connection default; +# mysql_upgrade --force --silent 2>&1 +show create user user3@localhost; +CREATE USER for user3@localhost +CREATE USER 'user3'@'localhost' IDENTIFIED BY PASSWORD '*5DC1D11F45824A9DD613961F05C1EC1E7A1601AA' +connect con1,localhost,user3,a_password; +select current_user(); +current_user() +user3@localhost +disconnect con1; +connection default; +drop user user3@localhost; +drop table mysql.global_priv; +rename table mysql.global_priv_bak to mysql.global_priv; diff --git a/mysql-test/main/mysql_upgrade.test b/mysql-test/main/mysql_upgrade.test index d4a3d864c21..9ed39aa5d32 100644 --- a/mysql-test/main/mysql_upgrade.test +++ b/mysql-test/main/mysql_upgrade.test @@ -106,8 +106,7 @@ SHOW GRANTS FOR 'user3'@'%'; DROP USER 'user3'@'%'; ---echo End of 5.1 tests - +--echo # End of 5.1 tests # # Test the --upgrade-system-tables option @@ -192,7 +191,7 @@ create table extralongname_extralongname_extralongname_extralongname_ext ( select length(table_name) from mysql.innodb_table_stats; drop table extralongname_extralongname_extralongname_extralongname_ext; ---echo End of 10.0 tests +--echo # End of 10.0 tests set sql_mode=default; @@ -218,9 +217,9 @@ DROP TABLE test.t1; --remove_file $MYSQLD_DATADIR/mysql_upgrade_info SET GLOBAL enforce_storage_engine=NULL; ---echo End of 10.1 tests +--echo # End of 10.1 tests ---echo Start of 10.3 tests +--echo # End of 10.2 tests --echo # --echo # Ensure that mysql_upgrade correctly sets truncate_versioning_priv @@ -244,3 +243,29 @@ DROP USER 'user3'@'%'; update mysql.db set Delete_history_priv='Y' where db like 'test%'; drop table mysql.global_priv; rename table mysql.global_priv_bak to mysql.global_priv; + +--echo # End of 10.3 tests + +--source include/switch_to_mysql_user.inc +drop view mysql.user_bak; +create user 'user3'@'localhost' identified with mysql_native_password as password('a_password'); +show create user user3@localhost; +update mysql.user set password=authentication_string, authentication_string='' where user='user3'; +select password,plugin,authentication_string from mysql.user where user='user3'; +flush privileges; +show create user user3@localhost; +connect con1,localhost,user3,a_password; +select current_user(); +disconnect con1; +connection default; +--echo # mysql_upgrade --force --silent 2>&1 +--exec $MYSQL_UPGRADE --force --silent 2>&1 +--remove_file $MYSQLD_DATADIR/mysql_upgrade_info +show create user user3@localhost; +connect con1,localhost,user3,a_password; +select current_user(); +disconnect con1; +connection default; +drop user user3@localhost; +drop table mysql.global_priv; +rename table mysql.global_priv_bak to mysql.global_priv; |