1. 程式人生 > >MySQL如何啟用密碼強度審計【轉】

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 字典檔案(外掛用於驗證密碼強度的字典檔案路徑)