如何設定我的 RDS for SQL Server 執行個體的密碼政策?
上次更新日期:2022-10-13
我需要為 Amazon Relational Database Service (Amazon RDS) for Microsoft SQL Server 執行個體設定密碼政策。要怎麼做?
簡短描述
密碼政策和到期間隔是在主機層級 (作業系統、Windows 層) 設定的。Amazon RDS 是一項受管服務。因此,由於對作業系統的存取受限,因此,無法對密碼政策進行修改。
建立新的登入或使用 SQL Server Management Studio (SSMS) 或 T-SQL 修改登入時,RDS for SQL Server 上預設會開啟密碼政策。
解決方案
RDS for SQL Server 執行個體未加入 Active Directory
如果執行個體未加入 AD,則會在 Windows 作業系統上定義政策。您無法修改這些政策。下列是在 Windows 密碼政策上設定的值:
- 強制密碼歷史記錄:記住 0 個密碼
- 密碼長度下限:0 個字元
- 密碼必須符合複雜性要求:已停用
- 使用可逆加密儲存密碼:已停用
- 密碼最短使用期限:0 天
- 密碼最長使用期限:42 天
注意:對於未加入 AD 的 RDS for SQL Server 執行個體,則無法使用帳戶鎖定政策。帳戶鎖定策略需要存取基礎作業系統。Amazon RDS 是受管服務,因此無法使用主機層級存取。
RDS for SQL Server 執行個體已加入 Active Directory
如果您使用適用於 RDS for SQL Server 的 Windows 驗證,則可以強制執行和修改密碼政策。如果 RDS 執行個體已加入網域,則網域政策的優先順序高於預設 RDS 密碼政策。
執行下列查詢,以識別使用密碼政策設定的 SQL 登入,以及執行個體上的密碼到期時間:
select name, type_desc, create_date, modify_date, is_policy_checked,
is_expiration_checked, isnull(loginproperty(name,'DaysUntilExpiration'),'-') Days_to_Expire, is_disabled
from sys.sql_logins
以下是 SQL Server 登入的密碼政策強制執行和密碼到期的可用選項:
備註:這些選項僅適用於已加入網域的 RDS 執行個體。
- policy_checked 欄為 0:SQL Server 登入不會執行任何密碼政策強制執行。
- policy_checked 欄為 1,並且 is_expiration_checked 為 0:SQL Server 登入強制執行密碼複雜性和鎖定,但不執行密碼到期。
- policy_checked 欄和 is_expiration_checked 都是 1:SQL Server 登入強制執行密碼複雜性、鎖定和密碼到期。
如果 policy_checked 和 is_expiration_checked 都為 0,則該政策適用於 RDS for SQL Server 資料庫執行個體中的主要使用者。這表示未為主要使用者設定密碼複雜性、鎖定設定和密碼到期時間。因此,主要使用者不會在 RDS for SQL Server 中過期。如果您的主要使用者失去存取權,您可以重設密碼。如需詳細資訊,請參閱為什麼我的 RDS for SQL Server 執行個體的主要使用者失去存取權,我要如何重新取得?