PWDCOMPARE (Transact-SQL)PWDCOMPARE (Transact-SQL)

ОБЛАСТЬ ПРИМЕНЕНИЯ ЭТОЙ СТАТЬИ:даSQL Server (начиная с 2008)нетБаза данных SQL AzureнетХранилище данных SQL AzureнетParallel Data WarehouseTHIS TOPIC APPLIES TO:yesSQL Server (starting with 2008)noAzure SQL DatabasenoAzure SQL Data Warehouse noParallel Data Warehouse

Хэширует пароль и сравнивает хэш с хэшем существующего пароля.Hashes a password and compares the hash to the hash of an existing password. Функция PWDCOMPARE может использоваться для поиска пустых паролей SQL ServerSQL Server или распространенных простых паролей.PWDCOMPARE can be used to search for blank SQL ServerSQL Server login passwords or common weak passwords.

Значок ссылки на раздел Синтаксические обозначения в Transact-SQLTopic link icon Transact-SQL Syntax Conventions

СинтаксисSyntax


PWDCOMPARE ( 'clear_text_password'  
   , password_hash   
   [ , version ] )  

АргументыArguments

' clear_text_password '' clear_text_password '
Незашифрованный пароль.Is the unencrypted password. Аргумент clear_text_password имеет тип sysname (nvarchar(128)).clear_text_password is sysname (nvarchar(128)).

password_hashpassword_hash
Хэш шифрования пароля.Is the encryption hash of a password. Аргумент password_hash имеет тип varbinary(128).password_hash is varbinary(128).

versionversion
Устаревший параметр, который может быть установлен в значение 1, если password_hash представляет значение для имени входа из версии ранее SQL Server 2000 (8.x)SQL Server 2000 (8.x), которое было перенесено в SQL Server 2005SQL Server 2005 или более позднюю версию, но так и не было преобразовано в систему SQL Server 2000 (8.x)SQL Server 2000 (8.x).Obsolete parameter that can be set to 1 if password_hash represents a value from a login earlier than SQL Server 2000 (8.x)SQL Server 2000 (8.x) that was migrated to SQL Server 2005SQL Server 2005 or later but never converted to the SQL Server 2000 (8.x)SQL Server 2000 (8.x) system. Аргумент version имеет тип int.version is int.

Внимание!

Этот параметр предназначен для обеспечения обратной совместимости, однако он пропускается, так как теперь большие двоичные объекты хэшей паролей содержат собственные описания версий.This parameter is provided for backwards compatibility, but is ignored because password hash blobs now contain their own version descriptions. В следующей версии Microsoft SQL Server этот компонент будет удален.This feature will be removed in the next version of Microsoft SQL Server. Не используйте его при работе над новыми приложениями и как можно быстрее измените приложения, в которых он в настоящее время используется.Do not use this feature in new development work, and modify applications that currently use this feature as soon as possible.

Типы возвращаемых данныхReturn Types

intint

Возвращает значение 1, если хэш параметра clear_text_password совпадает со значением параметра password_hash, или значение 0 в противном случае.Returns 1 if the hash of the clear_text_password matches the password_hash parameter, and 0 if it does not.

RemarksRemarks

Функция PWDCOMPARE — это не угроза устойчивости хэшей паролей, потому что этот же самый тест можно было бы выполнить, если попытаться использовать для входа пароль, заданный как первый параметр.The PWDCOMPARE function is not a threat against the strength of password hashes because the same test could be performed by trying to log in using the password provided as the first parameter.

PWDCOMPARE нельзя использовать с паролями пользователей автономных баз данных.PWDCOMPARE cannot be used with the passwords of contained database users. Какой-либо эквивалент для автономной базы данных отсутствует.There is no contained database equivalent.

РазрешенияPermissions

Функция PWDENCRYPT общедоступна.PWDENCRYPT is available to public.

Для просмотра столбца password_hash column представления sys.sql_logins требуется разрешение CONTROL SERVER.CONTROL SERVER permission is required to examine the password_hash column of sys.sql_logins.

ПримерыExamples

A.A. Выявление имен входа, у которых нет паролейIdentifying logins that have no passwords

В следующем примере выявляются имена входа SQL ServerSQL Server, у которых нет паролей.The following example identifies SQL ServerSQL Server logins that have no passwords.

SELECT name FROM sys.sql_logins   
WHERE PWDCOMPARE('', password_hash) = 1 ;  

Б.B. Поиск распространенных простых паролейSearching for common passwords

Для поиска распространенных простых паролей, которые требуется выявить и изменить, задайте пароль как первый параметр.To search for common passwords that you want to identify and change, specify the password as the first parameter. Например, можно выполнить следующую инструкцию для поиска пароля, заданного как password.For example, execute the following statement to search for a password specified as password.

SELECT name FROM sys.sql_logins   
WHERE PWDCOMPARE('password', password_hash) = 1 ;  

См. также:See Also

PWDENCRYPT (Transact-SQL) PWDENCRYPT (Transact-SQL)
Функции безопасности (Transact-SQL)Security Functions (Transact-SQL)