Поделиться через


LOGINPROPERTY (Transact-SQL)

Область применения:SQL ServerБаза данных SQL AzureУправляемый экземпляр SQL AzureAzure Synapse AnalyticsБаза данных SQL в Microsoft Fabric

Возвращает сведения о настройках политики входа в систему.

Соглашения о синтаксисе Transact-SQL

Синтаксис

LOGINPROPERTY ( 'login_name' , 'property_name' )

Аргументы

login_name

Имя имени входа SQL Server, для которого будет возвращено состояние свойства входа.

propertyname

Выражение, содержащее сведения о свойстве, возвращаемое для входа. propertyname может иметь одно из указанных ниже значений.

значение Описание
BadPasswordCount Возвращает число последовательных попыток входа в систему с неверным паролем.
BadPasswordTime Возвращает время последней попытки входа в систему с неверным паролем.
DaysUntilExpiration Возвращает число дней до завершения срока действия пароля.
DefaultDatabase Возвращает базу данных входа SQL Server по умолчанию, хранящуюся в метаданных или master если база данных не указана. Возвращает значение NULL для пользователей, которые поддерживаются внешними системами (например, прошедших проверку подлинности Windows).
DefaultLanguage Возвращает язык имени входа по умолчанию в соответствии со сведениями, сохраненными в метаданных. Возвращает значение 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.

ЗНАЧЕНИЕ NULL, если имя входа не является допустимым именем входа SQL Server.

Аргумент DaysUntilExpiration имеет тип int.

  • 0, если срок действия имени входа истек или истечет в день запроса.

  • -1, если срок действия пароля не ограничен в соответствии с локальной политикой безопасности Windows.

  • ЗНАЧЕНИЕ NULL, если CHECK_POLICY или CHECK_EXPIRATION отключен для входа или если операционная система не поддерживает политику паролей.

Аргумент 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. Дополнительные сведения см. в разделе Политика паролей.

Разрешения

Требует разрешения VIEW на имя входа. При запросе хэша пароля также требует разрешения CONTROL SERVER.

Примеры

А. Проверка необходимости изменения пароля для имени входа

Приведенный ниже пример выполняет проверку необходимости изменить пароль для учетных данных SQL Server John3 при следующем подключении к экземпляру SQL Server.

SELECT LOGINPROPERTY('John3', 'IsMustChange');
GO

B. Проверка блокировки имени входа

Следующий пример выполняет проверку того, заблокированы ли учетные данные SQL Server John3.

SELECT LOGINPROPERTY('John3', 'IsLocked');
GO