mirror of
https://github.com/MariaDB/server.git
synced 2025-07-27 18:02:13 +03:00
MDEV-7598 Lock user after too many password errors
This commit is contained in:
64
mysql-test/main/max_password_errors.test
Normal file
64
mysql-test/main/max_password_errors.test
Normal file
@ -0,0 +1,64 @@
|
||||
--source include/not_embedded.inc
|
||||
set @old_max_password_errors=@@max_password_errors;
|
||||
set global max_password_errors=2;
|
||||
create user u identified by 'good_pass';
|
||||
|
||||
# Test that user is blocked after 'max_password_errors' bad passwords
|
||||
--replace_result $MASTER_MYSOCK MASTER_SOCKET $MASTER_MYPORT MASTER_PORT
|
||||
error ER_ACCESS_DENIED_ERROR;
|
||||
connect(con1, localhost, u, bas_pass);
|
||||
--replace_result $MASTER_MYSOCK MASTER_SOCKET $MASTER_MYPORT MASTER_PORT
|
||||
error ER_ACCESS_DENIED_ERROR;
|
||||
connect (con1, localhost, u, bad_pass);
|
||||
--replace_result $MASTER_MYSOCK MASTER_SOCKET $MASTER_MYPORT MASTER_PORT
|
||||
error ER_USER_IS_BLOCKED;
|
||||
connect(con1, localhost, u, good_pass);
|
||||
--replace_result $MASTER_MYSOCK MASTER_SOCKET $MASTER_MYPORT MASTER_PORT
|
||||
error ER_USER_IS_BLOCKED;
|
||||
connect(con1, localhost, u, bad_pass);
|
||||
|
||||
|
||||
# Test that FLUSH PRIVILEGES clears the error
|
||||
FLUSH PRIVILEGES;
|
||||
connect (con1, localhost, u, good_pass);
|
||||
disconnect con1;
|
||||
|
||||
# Test that good login clears the error
|
||||
--replace_result $MASTER_MYSOCK MASTER_SOCKET $MASTER_MYPORT MASTER_PORT
|
||||
error ER_ACCESS_DENIED_ERROR;
|
||||
connect (con1, localhost, u, bad_pass);
|
||||
connect (con1, localhost, u, good_pass);
|
||||
disconnect con1;
|
||||
--replace_result $MASTER_MYSOCK MASTER_SOCKET $MASTER_MYPORT MASTER_PORT
|
||||
error ER_ACCESS_DENIED_ERROR;
|
||||
connect (con1, localhost, u, bad_pass);
|
||||
connect (con1, localhost, u, good_pass);
|
||||
|
||||
# Test the behavior of change_user
|
||||
--replace_result $MASTER_MYSOCK MASTER_SOCKET $MASTER_MYPORT MASTER_PORT
|
||||
error ER_ACCESS_DENIED_ERROR;
|
||||
change_user u,bad_pass;
|
||||
--replace_result $MASTER_MYSOCK MASTER_SOCKET $MASTER_MYPORT MASTER_PORT
|
||||
error ER_ACCESS_DENIED_ERROR;
|
||||
change_user u,bad_pass;
|
||||
--replace_result $MASTER_MYSOCK MASTER_SOCKET $MASTER_MYPORT MASTER_PORT
|
||||
error ER_USER_IS_BLOCKED;
|
||||
change_user u,good_pass;
|
||||
disconnect con1;
|
||||
|
||||
connection default;
|
||||
FLUSH PRIVILEGES;
|
||||
|
||||
#Test that root@localhost is not blocked, with password errors
|
||||
--replace_result $MASTER_MYSOCK MASTER_SOCKET $MASTER_MYPORT MASTER_PORT
|
||||
error ER_ACCESS_DENIED_ERROR;
|
||||
connect(con1, localhost, root, bas_pass);
|
||||
--replace_result $MASTER_MYSOCK MASTER_SOCKET $MASTER_MYPORT MASTER_PORT
|
||||
error ER_ACCESS_DENIED_ERROR;
|
||||
connect (con1, localhost, root, bad_pass);
|
||||
connect (con1, localhost, u, good_pass);
|
||||
disconnect con1;
|
||||
connection default;
|
||||
DROP USER u;
|
||||
FLUSH PRIVILEGES;
|
||||
set global max_password_errors=@old_max_password_errors;
|
Reference in New Issue
Block a user