LOGINPROPERTY (Transact-SQL)

返回有关登录名策略设置的信息。

主题链接图标Transact-SQL 语法约定

语法

LOGINPROPERTY ( 'login_name' , 'property_name' )

参数

  • login_name.
    将为其返回登录属性状态的 SQL Server 登录名。

  • propertyname
    一个表达式,包含要为登录名返回的属性信息。propertyname 可以是下列值之一:

    说明

    BadPasswordCount

    返回尝试以不正确密码连续登录的次数。

    BadPasswordTime

    返回上次尝试以不正确密码登录的时间。

    DaysUntilExpiration

    返回密码过期前的天数。

    DefaultDatabase

    返回存储在元数据中的 SQL Server 登录名的默认数据库;如果未指定数据库,则返回 master 数据库。为非 SQL Server 提供的用户(例如经过身份验证的 Windows 用户)返回 NULL。

    DefaultLanguage

    返回存储在元数据中的登录默认语言。为非 SQL Server 提供的用户(例如经过身份验证的 Windows 用户)返回 NULL。

    HistoryLength

    返回使用密码策略强制机制跟踪登录名的时间长度。

    IsExpired

    返回将指示该登录名是否过期的信息。

    IsLocked

    返回将指示是否锁定该登录名的信息。

    IsMustChange

    返回将指示该登录名在下次连接时是否必须更改其密码的信息。

    LockoutTime

    返回 SQL Server 登录名由于超过允许的失败登录尝试次数而被锁定的日期。

    PasswordHash

    返回密码的哈希。

    PasswordLastSetTime

    返回设置当前密码时的日期。

返回值

数据类型取决于所请求的值。

IsLockedIsExpiredIsMustChange 的数据类型为 int。

  • 1(如果登录名处于指定状态)。

  • 0(如果登录名不处于指定状态)。

BadPasswordCount 的类型为 int。

BadPasswordTimeHistoryLengthLockoutTimePasswordLastSetTime 的类型为 datetime。

PasswordHash 的类型为 varbinary。

NULL(如果登录名不是有效的 SQL Server 登录名)。

DaysUntilExpiration 的数据类型为 int

如果登录名已过期或者它将在查询的当日过期,则为 0。

如果 Windows 中的本地安全策略使密码永不过期,则为 -1。

如果某个登录名的 CHECK_POLICY 或 CHECK_EXPIRATION 设为 OFF,或者如果操作系统不支持该密码策略,则为 NULL。

注释

此内置函数返回有关 SQL Server 登录名的密码策略设置的信息。属性名称不区分大小写,因此诸如 BadPasswordCountbadpasswordcount 这样的属性名称是等价的。PasswordHashPasswordLastSetTime 属性的值在所有支持的 SQL Server 配置中都可用,但仅当 SQL Server 在 Windows Server 2003 上运行并且同时启用了 CHECK_POLICY 和 CHECK_EXPIRATION 时,其他属性才可用。有关详细信息,请参阅密码策略

权限

需要对登录名具有 VIEW 权限。请求密码哈希时,还需要 CONTROL SERVER 权限。

示例

A. 检查登录名是否必须更改其密码

以下示例检查 SQL Server 登录名 John3 在下次连接到 SQL Server 实例时是否必须更改其密码。

SELECT LOGINPROPERTY('John3', 'IsMustChange');
GO

B. 检查登录名是否已锁定

以下示例检查 SQL Server 登录名 John3 是否已锁定。

SELECT LOGINPROPERTY('John3', 'IsLocked');
GO