デフォルトのポリシー
MySQLにユーザーを追加してパスワードを設定しようとすると ↓ のようなエラーが出ることがあります。
# mysql -u root -p
Enter password:
mysql> CREATE USER ‘hoge@localhost’ IDENTIFIED BY ‘your password’
ERROR 1819 (HY000):,Your password does not satisfy the current policy requirements
#パスワードは現在のポリシー要件を満たしていません。
もっと複雑なパスワードにしなさいという警告ですが、長い複雑なもの覚えていられないのでポリシーを変えてみることにします。
現在のポリシーを表示
mysql> SHOW VARIABLES LIKE 'validate_password%'; +--------------------------------------------------+---------+ | Variable_name | Value | +--------------------------------------------------+---------+ | Validate_password.changed_characters_percentage | 0 | | 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 | +--------------------------------------------------+---------+
Policy | Tests Performed |
0 or LOW | Length 長さ; 8文字以上 |
1 or MEDIUM | Length; numeric, lowercase/uppercase, and special characters 長さ; 数字、小文字/大文字、特殊文字 |
2 or STRONG | Length; numeric, lowercase/uppercase, and special characters; dictionary file 長さ; 数字、小文字/大文字、特殊文字、辞書ファイル |
現在のポリシーは、8文字以上で数字、小文字/大文字、特殊文字を使用となっています。
ポリシーの変更
文字の長さ、6文字以上、ポリシーをLOWに変更します。
mysql> set global validate_password.length=6;
Query OK, 0 rows affected (0.00 sec)
mysql> set global validate_password.policy=LOW;
Query OK, 0 rows affected (0.01 sec)
#確認 mysql> SHOW VARIABLES LIKE 'validate_password%'; +--------------------------------------------------+---------+ | Variable_name | Value | +--------------------------------------------------+---------+ | Validate_password.changed_characters_percentage | 0 | | Validate_password.check_user_name | ON | | 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文字以上で設定可能に変更になりました。
変更を適用させるためMySQLデータサーバーを再起動します。
exitで終了するとデフォルトのポリシーに戻ってしまいます。そのままユーザーを作成して下さい。簡素化できるのはexitで終了するまでです。