我需要為 Amazon Relational Database Service (Amazon RDS) for Microsoft SQL Server 執行個體設定密碼政策。要怎麼做?
簡短描述
密碼政策和到期間隔是在主機層級 (作業系統、Microsoft Windows 層) 設定的。Amazon RDS 是一項受管服務。因此,由於對作業系統的存取受限,因此,無法對密碼政策進行修改。
新建登入或者使用 SQL Server Management Studio (SSMS) 或 T-SQL 修改登入時,RDS for SQL Server 上預設會開啟密碼政策。
解決方案
RDS for SQL Server 執行個體未加入 Active Directory
如果執行個體未加入 Active Directory,則會在 Windows 作業系統上定義政策。您無法修改這些政策。下列是在 Windows 密碼政策上設定的值:
- **強制密碼歷史記錄:**記住 0 個密碼
- **密碼長度下限:**0 個字元
- **密碼必須符合複雜性要求:**已停用
- **使用可逆加密儲存密碼:**已停用
- **密碼最短使用期限:**0 天
- **密碼最長使用期限:**42 天
**注意:**對於未加入 Active Directory 的 RDS for SQL Server 執行個體,則無法使用帳戶鎖定政策。帳戶鎖定策略需要存取基礎作業系統。Amazon RDS 是受管服務,因此無法使用主機層級存取。
RDS for SQL Server 執行個體已加入 Active Directory
如果您使用適用於 RDS for SQL Server 的 Windows 驗證,則可以強制執行和修改密碼政策。這僅適用於 Windows 驗證。「SQL 驗證」會使用上一節中定義的本機密碼政策,無論該政策是否已加入網域。
執行下列查詢,以識別使用密碼政策設定的 SQL Server 登入,以及執行個體上的密碼到期時間:
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 for SQL Server 執行個體。
- 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 執行個體的主要使用者失去存取權,我要如何重新取得?