共用方式為


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 提供的使用者傳回 NULL,例如 Windows 驗證的使用者。

    HistoryLength

    利用密碼原則強制執行機制,傳回追蹤登入的密碼數目。 如果密碼原則未強制執行,則為 0。 繼續密碼原則強制執行從 1 重新啟動。

    IsExpired

    指出登入是否已過期。

    IsLocked

    指出登入是否已鎖定。

    IsMustChange

    指出登入是否必須在下次連接時變更其密碼。

    LockoutTime

    傳回 SQL Server 登入因為超過允許的嘗試登入失敗次數而遭鎖定的日期。

    PasswordHash

    傳回密碼雜湊。

    PasswordLastSetTime

    傳回設定目前密碼的日期。

    PasswordHashAlgorithm

    傳回用來雜湊密碼的演算法。

傳回值

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

IsLockedIsExpiredIsMustChange 都是 int 類型。

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

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

BadPasswordCountHistoryLength 是 int 類型。

BadPasswordTimeLockoutTimePasswordLastSetTime 都是 datetime 類型。

PasswordHash 是 varbinary 類型。

NULL 代表登入不是有效的 SQL Server 登入。

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 時才可使用。 如需詳細資訊,請參閱<密碼原則>。

權限

需要登入的 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)