diff options
author | Sergei Golubchik <serg@mariadb.org> | 2021-06-09 13:17:58 +0200 |
---|---|---|
committer | Sergei Golubchik <serg@mariadb.org> | 2021-06-09 18:36:44 +0200 |
commit | f13b80af39c68a3d6f68c66416978795444759bb (patch) | |
tree | f2c55a3e3ff56619e6a341702022704c7e8fe1d5 /mysql-test/main | |
parent | bafec28e4325e15d1b29b888cfd58ad529c4ce09 (diff) | |
download | mariadb-git-f13b80af39c68a3d6f68c66416978795444759bb.tar.gz |
MDEV-23933 main.failed_auth_unixsocket fails on arm
the idea of main.failed_auth_unixsocket was to have existing
user account (root) authenticate with unix_socket, then login with
non-existent user name, Non-existent user name forces the server
to perform the authentication in the name of some random existing
user. But it must still fail at the end, as the user name is wrong.
In 10.4 a second predefined user was added, mariadb.sys, so root
is not the only user in mysql.global_priv and unix_socket auth
must be forced for all existing user accounts, because we cannot
know what user account the server will randomly pick for non-existing
user auth.
Diffstat (limited to 'mysql-test/main')
-rw-r--r-- | mysql-test/main/failed_auth_unixsocket.result | 7 | ||||
-rw-r--r-- | mysql-test/main/failed_auth_unixsocket.test | 7 |
2 files changed, 10 insertions, 4 deletions
diff --git a/mysql-test/main/failed_auth_unixsocket.result b/mysql-test/main/failed_auth_unixsocket.result index 32357a5a7a9..7e8b8fe70b9 100644 --- a/mysql-test/main/failed_auth_unixsocket.result +++ b/mysql-test/main/failed_auth_unixsocket.result @@ -1,7 +1,10 @@ -update mysql.global_priv set priv=json_insert(priv, '$.plugin', 'unix_socket') where user='root'; +create table global_priv_backup select * from mysql.global_priv; +update mysql.global_priv set priv=json_insert(priv, '$.plugin', 'unix_socket'); +delete from mysql.global_priv where user != 'root'; flush privileges; connect(localhost,USER,,test,MASTER_PORT,MASTER_SOCKET); ERROR 28000: Access denied for user 'USER'@'localhost' ERROR 28000: Access denied for user 'USER'@'localhost' -update mysql.global_priv set priv=json_compact(json_remove(priv, '$.plugin')) where user='root'; +replace mysql.global_priv select * from global_priv_backup; flush privileges; +drop table global_priv_backup; diff --git a/mysql-test/main/failed_auth_unixsocket.test b/mysql-test/main/failed_auth_unixsocket.test index e163a0c230f..fe80d947036 100644 --- a/mysql-test/main/failed_auth_unixsocket.test +++ b/mysql-test/main/failed_auth_unixsocket.test @@ -4,7 +4,9 @@ # MDEV-3909 remote user enumeration # unix_socket tests # -update mysql.global_priv set priv=json_insert(priv, '$.plugin', 'unix_socket') where user='root'; +create table global_priv_backup select * from mysql.global_priv; +update mysql.global_priv set priv=json_insert(priv, '$.plugin', 'unix_socket'); +delete from mysql.global_priv where user != 'root'; flush privileges; # Make sure that the replace works, even if $USER is 'user' or something else @@ -22,5 +24,6 @@ connect (fail,localhost,$USER); --error ER_ACCESS_DENIED_NO_PASSWORD_ERROR change_user $USER; -update mysql.global_priv set priv=json_compact(json_remove(priv, '$.plugin')) where user='root'; +replace mysql.global_priv select * from global_priv_backup; flush privileges; +drop table global_priv_backup; |