MySQL如何啟用密碼強度審計【轉】
1.密碼驗證外掛安裝
要使伺服器可以使用,外掛庫檔案必須位於MySQL外掛目錄(plugin_dir系統變數指定的目錄)中。如有必要,請設定plugin_dir伺服器啟動時的值, 以告知伺服器外掛目錄位置。
外掛庫檔案基本名稱是 validate_password。檔名字尾因平臺.so而異(例如,對於Unix和類Unix系統,.dll對於Windows)。
要在伺服器啟動時載入外掛,請使用該 --plugin-load-add選項命名包含它的庫檔案。使用此外掛載入方法,每次伺服器啟動時都必須提供該選項。例如,將這些行放在伺服器my.cnf檔案中(.so根據需要調整平臺的 字尾):
[mysqld] plugin-load-add=validate_password.so
修改後my.cnf,重新啟動伺服器以使新設定生效。
或者,要在執行時註冊外掛,請使用此語句(.so根據需要調整字尾):
INSTALL PLUGIN validate_password SONAME 'validate_password.so';
INSTALL PLUGIN載入外掛,並將其註冊到mysql.plugins 系統表中,以便為每個後續的正常伺服器啟動載入外掛。
要驗證外掛安裝,請檢查 INFORMATION_SCHEMA.PLUGINS表或使用該SHOW PLUGINS語句
mysql> SELECT PLUGIN_NAME, PLUGIN_STATUS FROM INFORMATION_SCHEMA.PLUGINS WHERE PLUGIN_NAME LIKE'validate%'; +-------------------+---------------+ | PLUGIN_NAME | PLUGIN_STATUS | +-------------------+---------------+ | validate_password | ACTIVE | +-------------------+---------------+
如果外掛無法初始化,請檢查伺服器錯誤日誌以獲取診斷訊息。
如果外掛先前已註冊 INSTALL PLUGIN或已載入 --plugin-load-add,您可以使用--validate-password伺服器啟動時的選項來控制外掛啟用。例如,要在啟動時載入外掛並防止在執行時刪除它,請使用以下選項:
[mysqld] plugin-load-add=validate_password.so validate-password=FORCE_PLUS_PERMANENT
1) 先檢視mysql全域性引數配置
該問題其實與mysql的validate_password_policy的值有關。
檢視一下msyql密碼相關的幾個全域性引數:
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引數配置
改變密碼策略,修改簡單密碼
mysql> set global validate_password_policy=0; Query OK, 0 rows affected (0.05 sec) mysql> set global validate_password_mixed_case_count=0; Query OK, 0 rows affected (0.00 sec) mysql> set global validate_password_number_count=0; 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=4; Query OK, 0 rows affected (0.00 sec) mysql> SHOW VARIABLES LIKE 'validate_password%'; +--------------------------------------+-------+ | Variable_name | Value | +--------------------------------------+-------+ | validate_password_dictionary_file | | | validate_password_length | 4 | | validate_password_mixed_case_count | 0 | | validate_password_number_count | 0 | | validate_password_policy | LOW | | validate_password_special_char_count | 0 | +--------------------------------------+-------+ 6 rows in set (0.00 sec)
4)修改簡單密碼:
mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('root'); Query OK, 0 rows affected, 1 warning (0.00 sec)
轉自
---------------------
作者:背鍋浩
來源:CSDN
原文:https://blog.csdn.net/weixin_39845407/article/details/81736882
版權宣告:本文為博主原創文章,轉載請附上博文連結!
以下轉自
MySQL如何啟用密碼強度審計_ITPUB部落格 http://blog.itpub.net/15498/viewspace-2135382/
執行以下命令安裝密碼強度審計外掛:
mysql>INSTALL PLUGIN validate_password SONAME 'validate_password.so';
設定最強密碼策略:
mysql> set global validate_password_policy=strong;
Query OK, 0 rows affected (0.00 sec)
或者通過配置檔案my.cnf新增部分密碼強度相關引數:
[mysqld] plugin-load=validate_password.so validate_password_policy=2 validate-password=FORCE_PLUS_PERMANENT 然後執行show plugins命令檢視是否啟用成功: mysql> show plugins; +----------------------------+----------+--------------------+----------------------+---------+ | Name | Status | Type | Library | License | +----------------------------+----------+--------------------+----------------------+---------+ | validate_password | ACTIVE | VALIDATE PASSWORD | validate_password.so | GPL | +----------------------------+----------+--------------------+----------------------+---------+
設定後的密碼強度審計相關引數如下:
mysql> show global variables like 'validate%'; +--------------------------------------+--------+ | 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 | STRONG | | validate_password_special_char_count | 1 | +--------------------------------------+--------+ 6 rows in set (0.00 sec)
--修改密碼,不符合規則會報錯
mysql> SET PASSWORD = PASSWORD('123456'); ERROR 1819 (HY000): Your password does not satisfy the current policy requirements mysql> SET PASSWORD = PASSWORD('aisino123!'); ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
修改成功,大小寫加數字和特殊字元最少1個,密碼長度最少8位:
mysql> SET PASSWORD = PASSWORD('Aisino123!'); --大小寫字碼加數字和特殊字元,最少8位 Query OK, 0 rows affected (0.00 sec)
相關引數解釋如下:
validate_password_policy 這個引數用於控制validate_password的驗證策略 0-->low 1-->MEDIUM 2-->strong。 validate_password_length密碼長度的最小值(這個值最小要是4)。 validate_password_number_count 密碼中數字的最小個數。 validate_password_mixed_case_count大小寫的最小個數。 validate_password_special_char_count 特殊字元的最小個數。 validate_password_dictionary_file 字典檔案(外掛用於驗證密碼強度的字典檔案路徑)