search
LoginSignup
130

More than 1 year has passed since last update.

posted at

updated at

Mysql 5.7* パスワードをPolicyに合わせるとめんどくさい件について

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

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
130