mysqlパスワード強度規則設定

4045 ワード

質問:
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;
ERROR 1819 (HY000): Your password does not satisfy the current policy requiremen

【原因】
MySQL 5.6.6以降、パスワード強度検証プラグインvalidateが追加されました.passwordは、関連パラメータの設定が厳格です.このプラグインを使用すると、設定されたパスワードが現在の設定の強度規則に合致しているかどうかを確認し、満たさない場合は設定を拒否します.影響する文と関数はcreate user,grant,set password,password()old passwordです.
【解決】
1)mysqlグローバルパラメータ構成の表示
この問題は実はmysqlのvalidateとpassword_policyの値が関係しています.msyqlパスワードに関するいくつかのグローバルパラメータを確認します.
[sql]  view plain
 copy
mysql> select @@validate_password_policy;  
+----------------------------+  
| @@validate_password_policy |  
+----------------------------+  
| MEDIUM                     |  
+----------------------------+  
1 row in set (0.00 sec)  
  
  
mysql> SHOW VARIABLES LIKE 'validate_password%';  
+--------------------------------------+--------+  
| Variable_name                        | Value  |  
+--------------------------------------+--------+  
| 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      |  
+--------------------------------------+--------+  
6 rows in set (0.08 sec)  
2)パラメータ解釈validate_password_dictionary_fileプラグインは、パスワードの強度を検証するための辞書ファイルパスです.validate_password_lengthパスワードの最小長、パラメータのデフォルトは8で、最小値の制限があります.最小値はvalidate_です.password_number_count + validate_password_special_char_count + (2 * validate_password_mixed_case_count)validate_password_mixed_case_countパスワードには、少なくとも小文字の個数と大文字の個数が含まれます.validate_password_number_countパスワードには少なくとも含まなければならない数字の数.validate_password_policyパスワード強度チェックレベル、0/LOW、1/MEDIUM、2/STRONG.Policy Tests Performed 0 or LOW Length                        1 or MEDIUM         Length; numeric, lowercase/uppercase, and special characters                              2 or STRONG        Length; numeric, lowercase/uppercase, and special characters; dictionary fileのデフォルトは1、すなわちMEDIUMなので、最初に設定したパスワードは長さに一致し、数字、小文字、大文字、特殊文字を含む必要があります.validate_password_special_char_countパスワードに少なくとも含まれる特殊文字数.
3)mysqlパラメータ構成の変更
[sql]  view plain
 copy
mysql> set global validate_password_policy=0;  
Query OK, 0 rows affected (0.05 sec)  
  
mysql>   
mysql>   
mysql> set global validate_password_mixed_case_count=0;  
Query OK, 0 rows affected (0.00 sec)  
  
mysql> set global validate_password_number_count=3;  
Query OK, 0 rows affected (0.00 sec)  
  
mysql> set global validate_password_special_char_count=0;  
Query OK, 0 rows affected (0.00 sec)  
  
mysql> set global validate_password_length=3;  
Query OK, 0 rows affected (0.00 sec)  
  
mysql> SHOW VARIABLES LIKE 'validate_password%';  
+--------------------------------------+-------+  
| Variable_name                        | Value |  
+--------------------------------------+-------+  
| validate_password_dictionary_file    |       |  
| validate_password_length             | 3     |  
| validate_password_mixed_case_count   | 0     |  
| validate_password_number_count       | 3     |  
| validate_password_policy             | LOW   |  
| validate_password_special_char_count | 0     |  
+--------------------------------------+-------+  
6 rows in set (0.00 sec)  
4)簡単なパスワードを変更する:
[sql]  view plain
 copy
mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('123');  
Query OK, 0 rows affected, 1 warning (0.00 sec)  
OK、完璧に解決!