1. 程式人生 > 資料庫 >MySQL密碼複雜度策略

MySQL密碼複雜度策略

MySQL密碼複雜度策略

MySQL

前言

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

本文采用測試環境:MySQL 8.0.15

一、檢視所需外掛

1.1 在 MySQL安裝目錄中,\MySQL Server 8.0\lib\plugin 可以看到預設存在validate_password.dll

1.2 在MySQL 8.0.15中預設沒有安裝這個外掛,我們可以通過 SELECT * from mysql.plugin; 檢視,列表為空。

安裝外掛

2.1 進入MySQL安裝外掛

新增:
  mysql> INSTALL PLUGIN validate_password SONAME 'validate_password.dll';

解除安裝:
  mysql> UNINSTALL PLUGIN validate_password;

外掛安裝後,使用 show plugins; 檢視是否啟用成功

2.2 檢視預設策略配置:

檢視預設策略配置命令show variables like 'validate_password%';

三、測試

3.1 修改密碼

alter us提示er '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';

本文為轉載,非本人原創,原文地址:#