LOGINPROPERTY (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
使用密码策略强制机制返回为登录名跟踪的密码的数目。如果不强制执行密码策略,则为 0。恢复密码策略强制将在 1 重新开始。
IsExpired
返回将指示该登录名是否过期的信息。
IsLocked
返回将指示是否锁定该登录名的信息。
IsMustChange
返回将指示该登录名在下次连接时是否必须更改其密码的信息。
LockoutTime
返回 SQL Server 登录名由于超过允许的失败登录尝试次数而被锁定的日期。
PasswordHash
返回密码的哈希。
PasswordLastSetTime
返回设置当前密码时的日期。
返回值
数据类型取决于所请求的值。
IsLocked、IsExpired 和 IsMustChange 的数据类型为 int。
1(如果登录名处于指定状态)。
0(如果登录名不处于指定状态)。
BadPasswordCount 和 HistoryLength 的类型为 int。
BadPasswordTime、LockoutTime 和 PasswordLastSetTime 的类型为 datetime。
PasswordHash 的类型为 varbinary。
NULL(如果登录名不是有效的 SQL Server 登录名)。
DaysUntilExpiration 的数据类型为 int。
如果登录名已过期或者它将在查询的当日过期,则为 0。
如果 Windows 中的本地安全策略使密码永不过期,则为 -1。
如果某个登录名的 CHECK_POLICY 或 CHECK_EXPIRATION 设为 OFF,或者如果操作系统不支持该密码策略,则为 NULL。
注释
此内置函数返回有关 SQL Server 登录名的密码策略设置的信息。属性名称不区分大小写,因此诸如 BadPasswordCount 和 badpasswordcount 这样的属性名称是等价的。PasswordHash 和 PasswordLastSetTime 属性的值在所有支持的 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