全部產品
Search
文件中心

ApsaraDB RDS:自訂密碼原則

更新時間:Aug 22, 2025

RDS MySQL支援通過validate_password外掛程式自訂密碼原則,以增強資料庫訪問的安全性。您可以修改密碼複雜度校正規則,包括密碼長度、密碼檢測強度等。

功能介紹

RDS MySQL支援通過validate_password外掛程式精細控制資料庫帳號密碼的複雜度要求:

  • 是否允許密碼與資料庫帳號名相同

  • 密碼最小長度

  • 需包含大寫和小寫字母的最小個數

  • 需包含數位最小個數

  • 需包含特殊字元的最小個數

  • 密碼強度檢測策略

前提條件

RDS MySQL執行個體版本需為5.7或8.0。

注意事項

  • 主節點的validate_password外掛程式安裝不會自動同步至備節點

    對於主備架構執行個體(高可用系列、叢集系列),validate_password外掛程式需在主節點和備節點分別手動安裝, 可通過手動切換主備操作登入備節點安裝。若僅在主節點安裝,後續發生主備切換後新主節點(原備節點)將缺失該外掛程式,導緻密碼策略失效。

    說明

    外掛程式安裝後,通過RDS控制台配置的密碼原則參數會自動同步至備節點,無需重複設定。

  • 核心參數限制及系統處理

    length必須大於或等於number_count + (2 * mixed_case_count)+ special_char_count,若任意一個值導致不符合上述要求,RDS會自動將length調整為等於該計算式的結果

  • RDS強制規則

    無論自訂策略如何設定,通過RDS控制台或API(CreateAccount/ResetAccountPassword)建立或修改密碼時,密碼始終遵循:

    • 長度為8~32個字元。

    • 包含大寫字母、小寫字母、數字、特殊字元(!@#$%^&*()_+-=)中的至少三種。

  • 繞過密碼最小長度為8的強制限制(不推薦)

    參數值調整無法繞過RDS控制台的強制校正,即使將密碼最小長度設為5,建立或修改密碼時仍需輸入至少8個字元。

    如需設定少於8個字元的密碼,可通過SET PASSWORD命令繞過RDS控制台的強制校正限制,直接設定為5字元密碼。此方法僅適用於測試環境或特殊情境,生產環境不建議使用

費用說明

自訂密碼原則功能免費使用。

步驟一:安裝validate_password外掛程式

  1. 使用高許可權帳號串連MySQL執行個體

  2. 執行如下SQL命令,安裝validate_password外掛程式。

    INSTALL PLUGIN validate_password SONAME 'validate_password.so';
  3. 執行如下SQL命令,驗證外掛程式是否安裝成功。

    SHOW GLOBAL VARIABLES LIKE 'validate_password%';

    出現類似下圖的返回結果即表示外掛程式安裝成功。返回結果

步驟二:修改密碼原則參數

  1. 訪問RDS執行個體列表,在上方選擇地區,然後單擊目標執行個體ID。

  2. 在左側導覽列中單擊參數設定

  3. 根據設定執行個體參數文檔,搜尋並修改loose_validate_password系列參數。

    說明

    參數名

    支援的資料庫版本

    說明

    配置樣本(5.7版本)

    loose_validate_password_check_user_name

    5.7

    是否允許密碼和帳號名一致。取值:

    • ON(預設值):允許。

    • OFF:不允許。

    OFF:禁止密碼與使用者名稱相同。

    loose_validate_password_policy

    8.0/5.7

    密碼強度檢測等級。取值:

    • 0:僅檢測密碼長度。

    • 1(預設值):檢測密碼的長度、數字、大小寫及特殊字元。

    • 2:檢測密碼的長度、數字、大小寫、特殊字元及字典檔案。

      說明

      由於當前暫不支援指定字典檔案,因此2強度與1相同。

    1:檢測密碼長度、數字、大小寫及特殊字元。

    loose_validate_password_length

    8.0/5.7

    密碼的最小長度。

    • MySQL 5.7:取值範圍為0~256。預設值為8

    • MySQL 8.0:取值範圍為1~12。預設值為8

    10:密碼最小長度為10字元(符合要求:10 >= 2 + (2 * 2) + 1 = 7)。

    loose_validate_password_number_count

    5.7

    密碼中需包含數位個數。

    取值範圍為0~256。預設值為1

    2:密碼中至少包含2個數字。

    loose_validate_password_mixed_case_count

    5.7

    密碼中需包含大小寫字母的個數。

    取值範圍為0~256。預設值為1

    2:密碼中至少包含1個大寫字母和1個小寫字母(總計2個大小寫字母)

    loose_validate_password_special_char_count

    5.7

    密碼中需包含特殊字元的個數。

    取值範圍為0~256。預設值為1

    1:密碼中至少包含1個特殊字元。

相關文檔