admin 發表於 2020-5-24 03:26:02

密碼設定強度修改


[*]OS及作業系統版本
[*]查看現有參數
[*]修改規則
[*]測試
新的mysql對於密碼設定多了更多的參數,預設也把原來的規則改得更嚴格,例如要8個字元、至少一個數字、一個英文字母和一個特殊符號。如果不符合規則的情況會報錯:ERROR 1819 (HY000) Your password does not satisfy the current policy requirements我覺得這樣很煩,想要改規則。
OS及作業系統版本FreeBSD ddnss 11.2-RELEASE-p10mysqlVer 8.0.16 for FreeBSD11.2 on amd64 (Source distribution)
查看現有參數進到MYSQL的SHELL中下指令> show variables like '%password%';
+----------------------------------------------+-----------------+
| Variable_name                              | Value         |
+----------------------------------------------+-----------------+
| caching_sha2_password_auto_generate_rsa_keys | ON            |
| caching_sha2_password_private_key_path       | private_key.pem |
| caching_sha2_password_public_key_path      | public_key.pem|
| default_password_lifetime                  | 0               |
| disconnect_on_expired_password               | ON            |
| mysql_native_password_proxy_users            | OFF             |
| password_history                           | 0               |
| password_require_current                     | OFF             |
| password_reuse_interval                      | 0               |
| report_password                              |               |
| sha256_password_auto_generate_rsa_keys       | ON            |
| sha256_password_private_key_path             | private_key.pem |
| sha256_password_proxy_users                  | OFF             |
| sha256_password_public_key_path            | public_key.pem|
| validate_password.check_user_name            | ON            |
| validate_password.dictionary_file            |               |
| validate_password.length                     | 8               | <== 8個字元
| validate_password.mixed_case_count         | 1               | <== 大小寫字元數
| validate_password.number_count               | 1               | <== 數字數
| validate_password.policy                     | MEDIUM          | <== 強度政策
| validate_password.special_char_count         | 1               | <== 特殊字元數
+----------------------------------------------+-----------------+
21 rows in set (0.00 sec)

其中的強度政策牽涉到會檢查的項目,有三種政策:0 /LOW 只檢查長度
1 /MEDIUM 檢查長度、英文、數字、特殊字元要照表操課
2 /STRONG 除了上面以外,還要檢查是否是字典檔的字
修改規則基本上只要修改最小長度為4,還有把政策調整為LOW即可,長度的最小值是4,設比4小的話還是會是4。強度政策調低後,其他的項目可以不必理會> set global validate_password.policy=0;
> set global validate_password.length=4;
> set global validate_password.special_char_count =0;
調整後規則| validate_password.length                     | 4               |
| validate_password.mixed_case_count         | 1               |
| validate_password.number_count               | 1               |
| validate_password.policy                     | LOW             |
| validate_password.special_char_count         | 0               |

測試直接修改密碼試試。Mysql 8修改密碼的方式有變更,原本的password 函數作廢。要用 alter user 的方法來改> use mysql;
Database changed
> ALTER USER 'axer'@'localhost' identified BY '123456';
Query OK, 0 rows affected (0.01 sec) <== 成功


頁: [1]
查看完整版本: 密碼設定強度修改