MySQL - validate password
Po instalacji bazy danych domyślne ustawienia są bardzo restrykcyjne dla tworzonych haseł. Wytłumaczę jak je zmniejszyć.
Test
Trzeba najpierw się zalogować do bazy danych:
ict@serv:~$ mysql -u root -p Enter password:
Po wpisaniu hasła wyświetl zmienne globalne dotyczące validacji hasła:
mysql> SHOW VARIABLES LIKE 'validate_password%'; +--------------------------------------+--------+ | Variable_name | Value | +--------------------------------------+--------+ | validate_password.check_user_name | ON | | validate_password.dictionary_file | | | validate_password.length | 8 | | validate_password.mixed_case_count | 1 | | validate_password.number_count | 1 | | validate_password.policy | MEDIUM | | validate_password.special_char_count | 1 | +--------------------------------------+--------+ 7 rows in set (0.00 sec)
Z tego opisu wynika jasno, że długość hasła musi być minimum 8 znaków, Musi mieć wymieszaną wielkość liter, zawierać cyfrę i znak specjalny.
Zmiana ustawień
Do testów takie restrykcje nie są tobie potrzebne - możesz je zmniejszyć. służy do tego polecenie SET GLOBAL
SET GLOBAL validate_password.length = 6; SET GLOBAL validate_password.mixed_case_count = 0; SET GLOBAL validate_password.number_count = 0; SET GLOBAL validate_password.policy = LOW; SET GLOBAL validate_password.special_char_count = 0;
Test
Po tym zabiegu wyświetlmy jeszcze raz zmienne:
mysql> SHOW VARIABLES LIKE 'validate_password%'; +--------------------------------------+-------+ | Variable_name | Value | +--------------------------------------+-------+ | validate_password.check_user_name | ON | | validate_password.dictionary_file | | | validate_password.length | 6 | | validate_password.mixed_case_count | 0 | | validate_password.number_count | 0 | | validate_password.policy | LOW | | validate_password.special_char_count | 0 | +--------------------------------------+-------+ 7 rows in set (0.01 sec)
Od razu widać zmianę. Jedynym wymogiem jest to aby hasło miało minimum 6 liter.