適用於: 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 的需求
建立 Kerberos 已驗證的會話
使用
kinit搭配sudo以取得或更新 Kerberos 票證授予票證(TGT)。針對
kinit命令使用具特殊權限的帳戶。 帳戶必須具有連線到網域的許可權。
在下列範例中,將
<user>取代為在網域中具有提高權限的帳戶。sudo kinit <user>@CONTOSO.COM確認已取得票:
sudo klist若要更新密碼原則,請使用 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。重新啟動 SQL Server 服務:
sudo systemctl restart mssql-server
使用 mssql-conf 手動設定自定義密碼原則
您可以使用 mssql.conf 更新 檔案中的參數,以設定 SQL 驗證登入密碼原則。 此方法提供簡單且直接控制原則設定。
當執行 SQL Server 的 Linux 主機不屬於網域,且沒有域控制器可從中取得密碼原則時,請使用此方法。
執行下列 mssql-conf 命令來設定每個原則組態屬性。
將密碼長度下限設定為14個字元,並遵循 密碼原則中所述的複雜度需求。
sudo /opt/mssql/bin/mssql-conf set passwordpolicy.passwordminimumlength 14將密碼存留期下限設定為一天。 用戶可在一天后變更其密碼。
sudo /opt/mssql/bin/mssql-conf set passwordpolicy.passwordminimumage 1將密碼歷程記錄長度設定為8。 用戶必須先使用八個唯一密碼,才能重複使用舊的密碼。
sudo /opt/mssql/bin/mssql-conf set passwordpolicy.passwordhistorylength 8將密碼存留期上限設定為 45 天。 使用者最多可以使用密碼 45 天,然後必須變更密碼。
sudo /opt/mssql/bin/mssql-conf set passwordpolicy.passwordmaximumage 45重新啟動 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 中的設定,而不是依賴複選框。