共用方式為


在Linux上的SQL Server 中設定 SQL 登入的自訂密碼原則

適用於: Linux 上的 SQL Server 2025 (17.x)

本文說明如何設定和管理 Linux 上 SQL Server 的 SQL 登入密碼原則。

密碼原則是保護任何資料庫環境的重要層面。 它們會強制執行:

  • 複雜性
  • 到期
  • 變化

這項強制執行可確保使用 SQL Server 驗證的登入是安全的。

備註

Windows 上提供密碼原則。 如需詳細資訊,請參閱< Password Policy>。

自定義原則設定

從 Linux 上的 SQL Server 2025(17.x)開始,你可以在檔案中 mssql.conf 設定以下設定參數,以強制自訂密碼政策。

組態選項 說明
passwordpolicy.passwordminimumlength 定義密碼所需的最小字元數。 密碼長度最多可達 128 個字元。
passwordpolicy.passwordhistorylength 決定必須記住的先前密碼數目。
passwordpolicy.passwordminimumage 指定用戶必須等候的最小持續時間,才能再次變更其密碼。
passwordpolicy.passwordmaximumage 設定密碼在必須變更之前可以使用的最大持續時間。

備註

目前, passwordminimumlength 可以設定為少於八個字元。 您的密碼應遵循 SQL Server 預設 密碼原則。 根據預設,密碼長度必須至少為8個字元,且包含下列四個集合中的三個字元:大寫字母、小寫字母、基底10位數和符號。 密碼長度最多可達 128 個字元。 盡可能使用長且複雜的密碼。

在 Linux 上的 SQL Server 中設定 SQL 驗證登入的自訂密碼原則有兩種方式:

  • 使用adutil強制執行自訂密碼原則
  • 使用 mssql.conf 工具手動設定檔案

使用adutil設定自訂密碼原則

在原則管理集中在 Active Directory (AD) 伺服器的環境中,網域系統管理員可以在 AD 伺服器中設定和修改密碼原則值。 此外,執行 SQL Server 的 Linux 機器也必須是 Windows 網域的一部分。

使用 adutil 從AD伺服器擷取密碼原則,並將它寫入檔案 mssql.conf 。 此方法提供集中式管理的優點,並確保在 SQL Server 環境中一致地套用原則。

adutil 的需求

  1. 建立 Kerberos 已驗證的會話

    • 使用 kinit 搭配 sudo 以取得或更新 Kerberos 票證授予票證(TGT)。

    • 針對 kinit 命令使用具特殊權限的帳戶。 帳戶必須具有連線到網域的許可權。

    在下列範例中,將 <user> 取代為在網域中具有提高權限的帳戶。

    sudo kinit <user>@CONTOSO.COM
    
  2. 確認已取得票:

    sudo klist
    
  3. 若要更新密碼原則,請使用 adutil查詢網域:

    sudo adutil updatepasswordpolicy
    

    如果命令成功,您應該會看到類似的訊息:

    Successfully updated password policy in mssqlconf.
    Restart SQL Server to apply the changes.
    

    您可以選擇性地將 --path 選項新增至上一個命令。 如果您的 mssql-conf 工具位於與預設路徑不同的位置,則可以使用此選項。 預設路徑為 /opt/mssql/bin/mssql-conf

  4. 重新啟動 SQL Server 服務:

    sudo systemctl restart mssql-server
    

使用 mssql-conf 手動設定自定義密碼原則

您可以使用 mssql.conf 更新 檔案中的參數,以設定 SQL 驗證登入密碼原則。 此方法提供簡單且直接控制原則設定。

當執行 SQL Server 的 Linux 主機不屬於網域,且沒有域控制器可從中取得密碼原則時,請使用此方法。

執行下列 mssql-conf 命令來設定每個原則組態屬性。

  1. 將密碼長度下限設定為14個字元,並遵循 密碼原則中所述的複雜度需求。

    sudo /opt/mssql/bin/mssql-conf set passwordpolicy.passwordminimumlength 14
    
  2. 將密碼存留期下限設定為一天。 用戶可在一天后變更其密碼。

    sudo /opt/mssql/bin/mssql-conf set passwordpolicy.passwordminimumage 1
    
  3. 將密碼歷程記錄長度設定為8。 用戶必須先使用八個唯一密碼,才能重複使用舊的密碼。

    sudo /opt/mssql/bin/mssql-conf set passwordpolicy.passwordhistorylength 8
    
  4. 將密碼存留期上限設定為 45 天。 使用者最多可以使用密碼 45 天,然後必須變更密碼。

    sudo /opt/mssql/bin/mssql-conf set passwordpolicy.passwordmaximumage 45
    
  5. 重新啟動 SQL Server 服務。

    sudo systemctl restart mssql-server
    

局限性

minimumpasswordlength目前,無法設定為超過 14 個字元。

在 Active Directory 中更新群組密碼策略之後,您必須手動執行 adutil updatepasswordpolicy 命令以更新 mssql.conf。 此命令不會自動執行。 請確定執行 SQL Server 的 Linux 機器是網域的一部分,或使用 mssql-conf 手動設定它。

在 Active Directory 中,可以使用複選框來定義或未定義每個群組層級的密碼原則。

密碼長度下限安全策略設定的螢幕快照。

在 Linux 上的 SQL Server 中,取消勾選該原則並不會停用它。 若要避免套用自定義密碼原則,請更新 mssql-conf 中的設定,而不是依賴複選框。