LOGINPROPERTY (Transact-SQL)
适用于: SQL Server Azure 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 | 返回设置当前密码时的日期。 |
PasswordHashAlgorithm | 返回用于对密码执行哈希操作的算法。 |
返回
数据类型取决于所请求的值。
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。
PasswordHashAlgorithm 的数据类型为 int。
0(如果是 SQL7.0 哈希)
1(如果是 SHA-1 哈希)
2(如果是 SHA-2 哈希)
NULL(如果登录名不是有效的 SQL Server 登录名)
备注
此内置函数返回有关 SQL Server 登录名的密码策略设置的信息。 属性名称不区分大小写,因此 BadPasswordCount 和 badpasswordcount 等属性名称是等效的。 PasswordHash、PasswordHashAlgorithm 和 PasswordLastSetTime 属性值在所有支持的 SQL Server 配置中都可用,但仅当 SQL Server 在 Windows Server 2003 上运行并且同时启用了 CHECK_POLICY 和 CHECK_EXPIRATION 时,其他属性才可用。 有关详细信息,请参阅 Password Policy。
权限
需要对登录名具有 VIEW 权限。 请求密码哈希时,还需要 CONTROL SERVER 权限。
示例
A. 检查登录名是否必须更改其密码
以下示例检查 SQL Server 登录名 John3
在下次连接到 SQL Server 实例时是否必须更改其密码。
SELECT LOGINPROPERTY('John3', 'IsMustChange');
GO
B. 检查登录名是否已锁定
以下示例检查 SQL Server 登录名 John3
是否已锁定。
SELECT LOGINPROPERTY('John3', 'IsLocked');
GO
另请参阅
CREATE LOGIN (Transact-SQL)
sys.server_principals (Transact-SQL)