何かのサービスにユーザを追加する際、作業効率などを考えて、単純なパスワードをつけることはよくあると思います。MySQL で単純なパスワードを設定しようとしたとき、
mysql> create user 'user'@'%' identified by 'password'; ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
パスワードがポリシーを満たしていない、と怒られます。そこで怒らないようにするため、ポリシーを緩くします。現状のポリシーは、
mysql> show variables like 'validate_password%'; +--------------------------------------+--------+ | Variable_name | Value | +--------------------------------------+--------+ | validate_password_check_user_name | OFF | | 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)
で確認でき、policy が MEDIUM になっています。これを
mysql> set global validate_password_policy=LOW; Query OK, 0 rows affected (0.00 sec)
で LOW に変えます。
mysql> show variables like 'validate_password%'; +--------------------------------------+-------+ | Variable_name | Value | +--------------------------------------+-------+ | validate_password_check_user_name | OFF | | validate_password_dictionary_file | | | validate_password_length | 8 | | validate_password_mixed_case_count | 1 | | validate_password_number_count | 1 | | validate_password_policy | LOW | | validate_password_special_char_count | 1 | +--------------------------------------+-------+ 7 rows in set (0.01 sec)
LOW に正しく変わっており、
mysql> create user 'user'@'%' identified by 'password'; Query OK, 0 rows affected (0.00 sec)
問題なく追加できました。ちなみに各ポリシーは、
ポリシー | チェックされること |
LOW | 長さ |
MEDIUM | 長さ、大文字・小文字、記号 |
STRONG | 長さ、大文字・小文字、記号、辞書 |
となっています。