MySQL設置密碼復雜度


MySQL5.6.6版本之后增加了密碼強度驗證插件validate_password,相關參數設置的較為嚴格。使用了該插件會檢查設置的密碼是否符合當前設置的強度規則,若不滿足則拒絕設置。

本文采用測試環境:MySQL 8.0.15

1、在 MySQL安裝目錄中,\MySQL Server 8.0\lib\plugin 可以看到默認存在validate_password.dll

2、在MySQL 8.0.15中默認沒有安裝這個插件,我們可以通過  SELECT * from mysql.`plugin` 查看,列表為空。

安裝插件:

添加:
  mysql> INSTALL PLUGIN validate_password SONAME 'validate_password.dll';

卸載:
  mysql> UNINSTALL PLUGIN validate_password;

插件安裝后,使用 show plugins; 查看是否啟用成功

  

3、查看默認策略配置:

show variables like 'validate_password%'; 

 4、測試

修改密碼

alter user 'root'@'localhost' identified by '123456789';

提示錯誤

[SQL]alter user 'root'@'localhost' identified by '123456789';
[Err] 1819 - Your password does not satisfy the current policy requirements

 

 各項值說明

validate_password_policy:密碼安全策略,默認MEDIUM策略

策略 檢查規則
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

 

 

 

 

validate_password_dictionary_file:密碼策略文件,策略為STRONG才需要

validate_password_length:密碼最少長度 

validate_password_mixed_case_count:大小寫字符長度,至少1個

validate_password_number_count :數字至少1個  validate_password_special_char_count:特殊字符至少1個

 

修改策略(將策略要求置為LOW,長度要求置為1)

set global validate_password_policy=0;
set global validate_password_length=1;

 

經測試,最小長度為4,設置為1無效,不曉得為什么,后面再查詢下。

 

如不需要,可關閉復雜性策略:

mysql> set global validate_password_policy=0;       # 關閉密碼復雜性策略
mysql> set global validate_password_length=1;      # 設置密碼復雜性要求密碼最低長度為1
mysql> select @@validate_password_policy;          # 查看密碼復雜性策略
mysql> select @@validate_password_length;          # 查看密碼復雜性要求密碼最低長度大小

重置密碼驗證,可成功修改:

alter user 'root'@'localhost' identified by '1234';

密碼重置成功,可重新登錄。

 

參考鏈接:

 https://www.cnblogs.com/zhi-leaf/p/5994478.html

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM