適用於:SQL Server
Azure SQL 資料庫
Azure SQL 受控執行個體
Azure Synapse Analytics
Microsoft Fabric 中的 SQL 資料庫
傳回有關登入原則設定的詳細資訊。
語法
LOGINPROPERTY ( 'login_name' , 'property_name' )
引數
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 | 傳回用來雜湊密碼的演算法。 在 SQL Server 2022 (16.x) 和舊版中,會使用鹽化密碼的 SHA-512 來計算預存的密碼資訊。 從 SQL Server 2025(17.x)開始,採用迭代雜湊演算法 RFC2898(PBKDF)。 雜湊值的第一個位元組表示版本: 0x02 適用於版本 2(SQL Server 2022(16.x)及更早版本)及 0x03 版本 3(SQL Server 2025(17.x)及以上版本)。 |
傳回
資料類型相依於要求的值。
IsLocked、IsExpired 及 IsMustChange 的類型為 int。
1 代表登入處於指定的狀態。
如果登入不是處於指定狀態,則為 0。
BadPasswordCount 及 HistoryLength 的類型為 int。
BadPasswordTime、LockoutTime、PasswordLastSetTime 的類型為 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 登入的密碼原則設定資訊。 屬性的名稱不區分大小寫,因此 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