MySQL 5.7
からパスワードポリシーが強化され単純なパスワードを設定しようとすると下記のようなメッセージが出るようになりました。
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
パスワードポリシーの基準は下記の通りです。
- 0 または LOW : 長さ
- 1 または MEDIUM : 長さ; 数字、小文字/大文字、および特殊文字
- 2 または STRONG : 長さ; 数字、小文字/大文字、および特殊文字。辞書ファイル
今回は一番パスワードポリシーのレベルが低い LOW
に設定してみたいと思います。
パスワードポリシーを確認する
MySQL
にログインした状態で下記のコマンドを実行します。
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 |
初期状態だとパスワードポリシーは MEDIUM
に設定されています。
パスワードポリシーを LOW に設定する
下記のコマンドを実行してパスワードポリシーを LOW
に設定します。その際、パスワードの文字列の長さも8文字から6文字に設定します。
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 |
パスワードの文字列長が6文字に、パスワードポリシーが LOW
に変更されました。
最後に
MySQL 5.7
からパスワードポリシーのルールが強化されこれまでのパスワードではエラーが表示されるようになってしまいました。開発している環境やお客さんの都合により決められたパスワードでは、エラーが出てパスワード設定できなくなる可能性も出てきてしまいますが、パスワードポリシーを変更することができればエラーも解消できるので、パスワードポリシーが変更できるということをしっかり覚えておきたいですね。
コメント