MySQL 8.1.0 ユーザー追加時のパスワード簡素化

デフォルトのポリシー

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       |
+--------------------------------------------------+---------+

Validate_password.policy

PolicyTests Performed
0 or LOWLength
長さ; 8文字以上
1 or MEDIUMLength; numeric, lowercase/uppercase, and special characters
長さ; 数字、小文字/大文字、特殊文字
2 or STRONGLength; 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で終了するまでです。

タイトルとURLをコピーしました