分享方式:


LOGINPROPERTY (Transact-SQL)

適用於:SQL Server Azure SQL 受控執行個體

傳回有關登入原則設定的詳細資訊。

Transact-SQL 語法慣例

Syntax

LOGINPROPERTY ( 'login_name' , 'property_name' )  

注意

若要檢視 SQL Server 2014 (12.x) 和更早版本的 Transact-SQL 語法,請參閱舊版文件

引數

login_name
這是要傳回登入屬性狀態之 SQL Server 登入的名稱。

propertyname
這是包含為登入傳回之屬性資訊的運算式。 propertyname 可以是下列值之一。

描述
BadPasswordCount 傳回連續使用錯誤密碼嘗試登入的次數。
BadPasswordTime 傳回上一次使用錯誤密碼嘗試登入的時間。
DaysUntilExpiration 傳回密碼到期之前的剩餘天數。
DefaultDatabase 傳回儲存在中繼資料中的 SQL Server 登入預設資料庫 (在未指定任何資料庫的情況下,則為 master)。 針對非 SQL Server 佈建的使用者傳回 NULL,例如 Windows 驗證的使用者。
DefaultLanguage 傳回登入預設語言 (儲存於中繼資料內)。 針對非 SQL Server 佈建的使用者傳回 NULL,例如 Windows 驗證的使用者。
HistoryLength 利用密碼原則強制執行機制,傳回追蹤登入的密碼數目。 如果密碼原則未強制執行,則為 0。 繼續密碼原則強制執行從 1 重新啟動。
IsExpired 指出登入的密碼是否已過期。
IsLocked 指出登入是否已鎖定。
IsMustChange 指出登入是否必須在下次連接時變更其密碼。
LockoutTime 傳回 SQL Server 登入因為超過允許的嘗試登入失敗次數而遭鎖定的日期。
PasswordHash 傳回密碼雜湊。
PasswordLastSetTime 傳回設定目前密碼的日期。
PasswordHashAlgorithm 傳回用來雜湊密碼的演算法。

傳回

資料類型相依於要求的值。

IsLockedIsExpiredIsMustChange 的類型為 int

  • 1 代表登入處於指定的狀態。

  • 0 代表登入並未處於指定的狀態。

BadPasswordCountHistoryLength 的類型為 int

BadPasswordTimeLockoutTimePasswordLastSetTime 的類型為 datetime

PasswordHash 的類型為 varbinary

如果登入不是有效的 SQL Server 登入,則為 NULL。

DaysUntilExpiration 的類型為 int

  • 如果登入已過期或是將會在查詢的日期到期,則為 0。

  • 如果 Windows 中的本機安全性原則永遠都不會讓密碼過期,則為 -1。

  • 如果登入的 CHECK_POLICY 或 CHECK_EXPIRATION 為 OFF,或是作業系統不支援此密碼原則,則為 NULL。

PasswordHashAlgorithm 的類型為 int。

  • 如果是 SQL7.0 雜湊,則為 0

  • 如果是 SHA-1 雜湊,則為 1

  • 如果是 SHA-2 雜湊,則為 2

  • 如果登入不是有效的 SQL Server 登入,則為 NULL

備註

這個內建函數會傳回有關 SQL Server 登入的密碼原則設定資訊。 屬性的名稱不區分大小寫,所以 BadPasswordCountbadpasswordcount 之類的屬性名稱是相等的。 PasswordHash、PasswordHashAlgorithmPasswordLastSetTime 屬性值可用於所有受支援的 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)