Mysql 5.7* パスワードのポリシー
Mysql にユーザーを追加しパスワードを設定しようと試みたところ、
Errorが出ました。
下記参照
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
上記は要するにパスワードの文字列をもっと複雑にしてください的な内容になります。
下記が詳細になります。
ポリシー | 実行されたテスト |
---|---|
0 または LOW | 長さ |
1 または MEDIUM | 長さ; 数字、小文字/大文字、および特殊文字 |
2 または STRONG | 長さ; 数字、小文字/大文字、および特殊文字。辞書ファイル |
引用先:
MySQL 5.7
Mysql 8.0が出たので、下記を追加しました。
要するにMEDIUMは文字列の長さを指定した長さにして、数字を使って、大文字、小文字を使って、さらに特殊文字を用いてパスワードにしてくださいとのこと、
これではログイン不安なので、
変更してみました。
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)
上記のようになっているものを下記で変更。
mysql> set global validate_password_length=6; # 文字列の長さを変更
mysql> set global validate_password_policy=LOW; # ポリシーを変更
mysql> show variables like 'validate_password%';
+--------------------------------------+-------+
| Variable_name | Value |
+--------------------------------------+-------+
| validate_password_check_user_name | OFF |
| validate_password_dictionary_file | |
| validate_password_length | 6 |
| 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.00 sec)
これで6文字で特殊文字がなくても、大文字、小文字両方使わなくても設定できます。
もしくはMysqlの設定そのものを変更してしまいます。
下記引用:
パスワードのチェックを無効化する
チェックを無効にしたければvalidate_passwordプラグインを無効にするといいらしい。
ということで、my.cnfにvalidate-password=OFFを追記。これだけ。
$ sudo vi /etc/my.cnf
/etc/my.cnf
[mysqld]
validate-password=OFF
設定反映のためmysqlの再起動。
$ sudo systemctl restart mysqld.service