mysql 8.0からパスワード検証コンポーネントが再実装
パスワード検証コンポーネント(validate_password conponent)はパスワードの強度を検証してセキュリティを向上させる機能です。
パスワード検証コンポーネントのせいで脆弱なパスは利用できません。
- 短いパスワード
- rootパスワードなし
詳しくはリファレンスを確認してください。
https://man.plustar.jp/mysql/validate-password.html
mysql5.7では validate_password pluginだったものがmysql 8.0では validate_password コンポーネントとして再実装されている影響で無効化の仕方などの設定が従来と変わっています。
パスワード検証コンポーネントを無効化する手順
個人開発用途やDBのログイン部分以外でセキュリティを高めている場合などで短いパスワードまたはパスワードなしで利用するには下記の方法を試してください。
パスワード検証コンポーネントの有効を確認(show variables like ‘validate_password%’)
mysql> SHOW VARIABLES LIKE 'validate_password%';
+--------------------------------------+--------+
| Variable_name | Value |
+--------------------------------------+--------+
| 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 |
+--------------------------------------+--------+
7 rows in set (0.00 sec)
有効な場合は上のような値が返ってくる
パスワード検証コンポーネントの無効化
mysql> UNINSTALL COMPONENT 'file://component_validate_password';
Query OK, 0 rows affected (0.00 sec)
mysql> SHOW VARIABLES LIKE 'validate_password%';
Empty set (0.01 sec)
⬆︎何も表示されなくなる。
mysql> set password for root@localhost = '';
ルートのパスワードをなしに設定可能になる。
パスワード検証コンポーネントの有効化
mysql> INSTALL COMPONENT 'file://component_validate_password';
Query OK, 0 rows affected (0.04 sec)
mysql> SHOW VARIABLES LIKE 'validate_password%';
+--------------------------------------+--------+
| Variable_name | Value |
+--------------------------------------+--------+
| 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 |
+--------------------------------------+--------+
7 rows in set (0.00 sec)
インストールし直せばまた有効になる。