設(shè)置密碼復雜度
1,密碼驗證插件安裝
要使服務(wù)器可以使用,插件庫文件必須位于MySQL插件目錄(
plugin_dir
系統(tǒng)變量指定的目錄)中。插件庫文件基本名是
validate_password.so
。
show variables like '%plugin%';
在運行時注冊插件,請使用此語句
INSTALL PLUGIN validate_password SONAME 'validate_password.so';
INSTALL PLUGIN
加載插件,并將其注冊到
mysql.plugins
系統(tǒng)表中,以便為每個后續(xù)的正常服務(wù)器啟動加載插件。
要驗證插件安裝,請檢查
INFORMATION_SCHEMA.PLUGINS
表或使用該
SHOW PLUGINS
語句
10:47:11(none)> SELECT PLUGIN_NAME, PLUGIN_STATUS
FROM INFORMATION_SCHEMA.PLUGINS
WHERE PLUGIN_NAME LIKE 'validate%';
+-------------------+---------------+
| PLUGIN_NAME | PLUGIN_STATUS |
+-------------------+---------------+
| validate_password | ACTIVE |
+-------------------+---------------+
1)先查看mysql全局參數(shù)配置
該問題其實與mysql的validate_password_policy的值有關(guān)。
查看一下msyql密碼相關(guān)的幾個全局參數(shù):
10:47:12(none)> select @@validate_password_policy;
+----------------------------+
| @@validate_password_policy |
+----------------------------+
| MEDIUM |
+----------------------------+
1 row in set (0.00 sec)
10:49:07(none)> SHOW VARIABLES LIKE 'validate_password%';
+--------------------------------------+--------+
| Variable_name | Value |
+--------------------------------------+--------+
| validate_password_check_user_name | OFF |
| 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.04 sec)
2)參數(shù)解釋
validate_password_length
密碼最小長度,參數(shù)默認為8,它有最小值的限制,最小值為:validate_password_number_count + validate_password_special_char_count + (2 * validate_password_mixed_case_count)
validate_password_mixed_case_count
密碼至少要包含的小寫字母個數(shù)和大寫字母個數(shù)。
validate_password_number_count
密碼至少要包含的數(shù)字個數(shù)
validate_password_policy
密碼強度檢查等級,0/LOW、1/MEDIUM、2/STRONG。默認是1,即MEDIUM,所以剛開始設(shè)置的密碼必須符合長度,且必須含有數(shù)字,小寫或大寫字母,特殊字符。
validate_password_special_char_count
密碼至少要包含的特殊字符數(shù)。
3)改變密碼策略,修改簡單密碼
set global validate_password_policy=0;
set global validate_password_mixed_case_count=0;
set global validate_password_number_count=0;
set global validate_password_special_char_count=0;
set global validate_password_length=4;
修改簡單密碼:
mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('root');