polardbxengine/mysql-test/r/validate_password_component...

94 lines
3.9 KiB
Plaintext

INSTALL COMPONENT "file://component_validate_password";
SELECT @@global.validate_password.check_user_name;
@@global.validate_password.check_user_name
1
# Should fail: not a session variable
SET @@session.validate_password.check_user_name= ON;
ERROR HY000: Variable 'validate_password.check_user_name' is a GLOBAL variable and should be set with SET GLOBAL
# Should fail: not a session variable
SET validate_password.check_user_name= ON;
ERROR HY000: Variable 'validate_password.check_user_name' is a GLOBAL variable and should be set with SET GLOBAL
SET @@global.validate_password.policy=LOW;
SET @@global.validate_password.mixed_case_count=0;
SET @@global.validate_password.number_count=0;
SET @@global.validate_password.special_char_count=0;
SET @@global.validate_password.length=0;
SET @@global.validate_password.check_user_name= ON;
# Must pass: password the same as the the user name, but run by root
CREATE USER "base_user"@localhost IDENTIFIED BY 'base_user';
GRANT ALL PRIVILEGES ON test.* TO "base_user"@localhost;
# Must pass: password the same as the user name, but run by root
SET PASSWORD FOR "base_user"@localhost = 'base_user';
# Must pass: password the same as the user name, but run by root
ALTER USER "base_user"@localhost IDENTIFIED BY 'base_user';
# Must fail: password is root
CREATE USER foo@localhost IDENTIFIED BY 'root';
ERROR HY000: Your password does not satisfy the current policy requirements
# Must return 0 : same as the user name
SELECT VALIDATE_PASSWORD_STRENGTH('root') = 0;
VALIDATE_PASSWORD_STRENGTH('root') = 0
1
# Must return 0 : same as the user name
SELECT VALIDATE_PASSWORD_STRENGTH('toor') = 0;
VALIDATE_PASSWORD_STRENGTH('toor') = 0
1
# Must return non-0: upper case in user name
SELECT VALIDATE_PASSWORD_STRENGTH('Root') <> 0;
VALIDATE_PASSWORD_STRENGTH('Root') <> 0
1
# Must return non-0: upper case in reverse user name
SELECT VALIDATE_PASSWORD_STRENGTH('Toor') <> 0;
VALIDATE_PASSWORD_STRENGTH('Toor') <> 0
1
# Must return non-0: different name
SELECT VALIDATE_PASSWORD_STRENGTH('fooHoHo%1') <> 0;
VALIDATE_PASSWORD_STRENGTH('fooHoHo%1') <> 0
1
# connect as base_user
# Should fail: password the same as the user name
SET PASSWORD='base_user';
ERROR HY000: Your password does not satisfy the current policy requirements
# Should pass: uppercase in U
SET PASSWORD='base_User';
# Should fail: password the same as the login user name
ALTER USER "base_user"@localhost IDENTIFIED BY 'base_user';
ERROR HY000: Your password does not satisfy the current policy requirements
# Must be 0: user name matches the password
SELECT VALIDATE_PASSWORD_STRENGTH('base_user') = 0;
VALIDATE_PASSWORD_STRENGTH('base_user') = 0
1
# Must be 0: reverse of user name matches the password
SELECT VALIDATE_PASSWORD_STRENGTH('resu_esab') = 0;
VALIDATE_PASSWORD_STRENGTH('resu_esab') = 0
1
# Must pass: empty password is ok
SET PASSWORD='';
# back to default connection
REVOKE ALL PRIVILEGES ON test.* FROM "base_user"@localhost;
DROP USER "base_user"@localhost;
# test effective user name
CREATE USER ""@localhost;
GRANT ALL PRIVILEGES ON test.* TO ""@localhost;
# connect as the login_user
SELECT USER(),CURRENT_USER();
USER() CURRENT_USER()
login_user@localhost @localhost
# Should return 0: login user id matches
SELECT VALIDATE_PASSWORD_STRENGTH('login_user') = 0;
VALIDATE_PASSWORD_STRENGTH('login_user') = 0
1
# Should return 0: reverse login user id matches
SELECT VALIDATE_PASSWORD_STRENGTH('resu_nigol') = 0;
VALIDATE_PASSWORD_STRENGTH('resu_nigol') = 0
1
# back to default connection
REVOKE ALL PRIVILEGES ON test.* FROM ""@localhost;
DROP USER ""@localhost;
SET @@global.validate_password.policy=default;
SET @@global.validate_password.length=default;
SET @@global.validate_password.mixed_case_count=default;
SET @@global.validate_password.number_count=default;
SET @@global.validate_password.special_char_count=default;
SET @@global.validate_password.check_user_name= default;
UNINSTALL COMPONENT "file://component_validate_password";