mirror of
https://github.com/MariaDB/server.git
synced 2026-10-23 18:49:29 +03:00
MDEV#6266: Changing password fails on galera cluster
Added a check to skip ER_PASSWORD_ANONYMOUS_USER in case the SET PASSWORD was executed by wsrep applier thread.
This commit is contained in:
17
mysql-test/suite/galera/r/grant.result
Normal file
17
mysql-test/suite/galera/r/grant.result
Normal file
@@ -0,0 +1,17 @@
|
||||
#
|
||||
# MDEV#6266: Changing password fails on galera cluster
|
||||
#
|
||||
|
||||
# On node_1
|
||||
GRANT SELECT ON *.* TO 'user_6266'@'localhost' IDENTIFIED BY 'pass';
|
||||
|
||||
# Now, try changing password for 'user_6266'. This command should also
|
||||
# execute successfully on the other node.
|
||||
SET PASSWORD FOR 'user_6266'@'localhost' = PASSWORD('newpass');
|
||||
|
||||
# On node_2
|
||||
SELECT user FROM mysql.user WHERE user='user_6266';
|
||||
user
|
||||
user_6266
|
||||
DROP USER 'user_6266'@'localhost';
|
||||
# End of test
|
||||
25
mysql-test/suite/galera/t/grant.test
Normal file
25
mysql-test/suite/galera/t/grant.test
Normal file
@@ -0,0 +1,25 @@
|
||||
--source include/galera_cluster.inc
|
||||
--source include/have_innodb.inc
|
||||
|
||||
--echo #
|
||||
--echo # MDEV#6266: Changing password fails on galera cluster
|
||||
--echo #
|
||||
|
||||
--echo
|
||||
--echo # On node_1
|
||||
--connection node_1
|
||||
GRANT SELECT ON *.* TO 'user_6266'@'localhost' IDENTIFIED BY 'pass';
|
||||
--echo
|
||||
--echo # Now, try changing password for 'user_6266'. This command should also
|
||||
--echo # execute successfully on the other node.
|
||||
SET PASSWORD FOR 'user_6266'@'localhost' = PASSWORD('newpass');
|
||||
|
||||
--echo
|
||||
--echo # On node_2
|
||||
--connection node_2
|
||||
SELECT user FROM mysql.user WHERE user='user_6266';
|
||||
# cleanup
|
||||
DROP USER 'user_6266'@'localhost';
|
||||
|
||||
--source include/galera_end.inc
|
||||
--echo # End of test
|
||||
@@ -2512,7 +2512,13 @@ int check_change_password(THD *thd, const char *host, const char *user,
|
||||
my_error(ER_OPTION_PREVENTS_STATEMENT, MYF(0), "--skip-grant-tables");
|
||||
return(1);
|
||||
}
|
||||
if (!thd->slave_thread && !thd->security_ctx->priv_user[0])
|
||||
|
||||
#ifdef WITH_WSREP
|
||||
if ((!WSREP(thd) || !thd->wsrep_applier) &&
|
||||
!thd->slave_thread && !thd->security_ctx->user[0])
|
||||
#else
|
||||
if (!thd->slave_thread && !thd->security_ctx->user[0])
|
||||
#endif /* WITH_WSREP */
|
||||
{
|
||||
my_message(ER_PASSWORD_ANONYMOUS_USER, ER(ER_PASSWORD_ANONYMOUS_USER),
|
||||
MYF(0));
|
||||
@@ -2523,6 +2529,7 @@ int check_change_password(THD *thd, const char *host, const char *user,
|
||||
my_error(ER_PASSWORD_NO_MATCH, MYF(0));
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (!thd->slave_thread &&
|
||||
#ifdef WITH_WSREP
|
||||
(!WSREP(thd) || !thd->wsrep_applier) &&
|
||||
|
||||
Reference in New Issue
Block a user