自定义账号密码策略

账号密码策略用于在Windows主机层面管理密码设置,RDS SQL Server支持通过控制台或API配置账号密码策略,精细化管理密码有效期以增强安全性。用户账号密码默认永不过期,您可以设置密码策略后为其手动应用;主机账号密码默认仅42天有效,密码过期会导致登录失败,建议您提前设置密码策略,主机账号将自动应用该策略,无需手动配置。

前提条件

RDS SQL Server需满足如下条件:

  • 实例规格:通用型、独享型(不支持共享型

  • 计费方式:包年包月或按量付费(不支持Serverless实例

  • 实例版本:RDS SQL Server 2008 R2以外的其他版本

注意事项

在创建账号时,如果选择应用密码策略,账号密码中不能包含账号名本身。例如账号名为Test240903,则账号密码不支持设置为Test240903abc等形式。

步骤一:设置账号密码策略

  1. 访问RDS实例列表,在上方选择地域,然后单击目标实例ID。

  2. 在左侧导航栏,单击账号管理

  3. 单击账号密码策略,设置如下参数,勾选目标策略后,单击确定

    支持仅设置密码的最长或最短使用时间,也支持同时设置两个策略。

    配置项

    说明

    取值范围(天)

    最长密码使用时间

    设置密码的最长使用时间,超过此时间后需要修改密码。

    0~999

    最短密码使用时间

    设置密码的最短使用时间,在此时间内不能再次修改密码。

    说明

    该值不能大于最长使用时间。

    0~998

    示例一:仅设置密码最长使用时间

    如果用户期望密码的最长使用时间是60天,超过60天密码将过期,用户需要及时修改密码,则可以将最长密码使用时间设置为60天。

    image

    示例二:仅设置密码最短使用时间

    如果用户期望密码最短可以使用30天,30天内不能再修改密码,则可以将最短密码使用时间设置为30天。

    image

    示例三:同时设置密码的最长和最短使用时间

    如果用户期望每90天修改一次密码,且修改后的密码必须使用至少30天,则可以将最长密码使用时间设置为90天,同时最短密码使用时间设置为30天。

    image

步骤二:为用户账号应用账号密码策略

对于用户账号,您需要手动为其应用密码策略;主机账号会自动应用密码策略,无需手动配置

创建用户账号时应用密码策略

账号管理 > 用户账号页面中,创建普通权限账号、高权限账号SA权限的数据库账号时应用密码策略。

image

为已有用户账号应用密码策略

账号管理 > 用户账号页面中,为已有账号应用密码策略。

image

常见问题

RDS SQL Server主机账号的默认密码过期时间是多久?

默认情况下,主机账号使用Windows系统的密码策略(Password Policy),默认过期时间为42天。如果RDS SQL Server创建了主机登录账号,则默认会有42天的密码过期时间,过期后需重置密码

image

image

RDS SQL Server主机账号的默认密码过期时间,如何修改?

RDS SQL Server支持自定义账号密码策略,用户可以在RDS控制台中按需修改最长或最短密码使用时间。修改后主机账号将自动应用新策略,且立即生效。如果用户账号也应用了密码策略,也同样会立即生效。但需注意,共享型、2008 R2版本实例和Serverless实例不支持此功能。

image

image

RDS SQL Server用户账号/主机账户的密码过期策略是否可以通过RDS控制台设置?

可以的。SQL Server本身不管理独立的密码过期策略,而是继承Windows的设置。但用户可以通过RDS控制台的账号密码策略进行配置,也可以直接登录Windows主机修改密码策略。但需注意,共享型、2008 R2版本实例和Serverless实例不支持此功能。

RDS SQL Server控制台创建的用户账号是否有默认密码过期策略,是否有过期时间?

默认情况下,通过RDS控制台创建的用户账号未启用Windows密码策略。如果需要启用密码过期策略,可以通过修改用户的CHECK_POLICYCHECK_EXPIRATIONON来启用。当通过RDS控制台对用户应用密码策略后,对应账户的CHECK_POLICYCHECK_EXPIRATION会被设置为ON,从而使用Windows策略。

例如,如果通过RDS控制台将最短密码使用时间设置为1天,最长密码使用时间设置为2天,则对应的Windows密码策略中,Minimum password age(最小密码使用期限)将被设置为1天,Maximum password age(最大密码使用期限)将被设置为2天。

image

image

RDS SQL Server如何查看用户是否启用了密码策略?例如是否过期了?密码何时被修改过?

用户可以通过以下SQL查询语句查看用户的密码策略状态及相关信息,包括是否启用策略、是否过期等:

-- 查询用户密码策略状态及相关信息
SELECT 
    name,
    is_policy_checked, -- 是否启用了密码复杂性策略
    is_expiration_checked, -- 是否启用了密码过期策略
    LOGINPROPERTY(name, 'IsMustChange') AS IsMustChange, -- 密码是否必须在下次登录时更改
    LOGINPROPERTY(name, 'IsLocked') AS IsLocked, -- 账户是否被锁定
    LOGINPROPERTY(name, 'LockoutTime') AS LockoutTime, -- 账户被锁定的时间(如果未锁定则为NULL)
    LOGINPROPERTY(name, 'PasswordLastSetTime') AS PasswordLastSetTime, -- 密码最后一次修改时间
    LOGINPROPERTY(name, 'IsExpired') AS IsExpired, -- 密码是否已过期
    LOGINPROPERTY(name, 'BadPasswordCount') AS BadPasswordCount, -- 错误密码尝试次数
    LOGINPROPERTY(name, 'BadPasswordTime') AS BadPasswordTime, -- 最后一次错误密码尝试时间
    LOGINPROPERTY(name, 'HistoryLength') AS HistoryLength, -- 密码历史记录长度(防止重复使用旧密码)
    modify_date -- 用户账户最后修改时间
FROM 
    sys.sql_logins; -- 从系统视图中查询SQL Server登录用户信息

image

相关操作