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

SE APLICA A: síSQL Server (a partir de 2008) noAzure SQL Database noAzure SQL Data Warehouse noAlmacenamiento de datos paralelos APPLIES TO: yesSQL Server (starting with 2008) noAzure SQL Database noAzure SQL Data Warehouse noParallel Data Warehouse

Obtiene el valor hash de una contraseña y lo compara con el de otra existente.Hashes a password and compares the hash to the hash of an existing password. PWDCOMPARE se puede usar para buscar contraseñas de inicio de sesión de SQL ServerSQL Server en blanco o contraseñas poco seguras comunes.PWDCOMPARE can be used to search for blank SQL ServerSQL Server login passwords or common weak passwords.

Icono de vínculo de tema Convenciones de sintaxis de Transact-SQLTopic link icon Transact-SQL Syntax Conventions

SintaxisSyntax

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

ArgumentosArguments

' clear_text_password '' clear_text_password '
Es la contraseña sin cifrar.Is the unencrypted password. clear_text_password es sysname (nvarchar(128) ).clear_text_password is sysname (nvarchar(128)).

password_hashpassword_hash
Es el valor hash de cifrado de una contraseña.Is the encryption hash of a password. password_hash es varbinary(128) .password_hash is varbinary(128).

versionversion
Parámetro desusado que se puede establecer en 1 si password_hash representa un valor de un inicio de sesión anterior a SQL Server 2000 (8.x)SQL Server 2000 (8.x) que se migró a SQL Server 2005 (9.x)SQL Server 2005 (9.x) o posterior, pero que nunca se convirtió al sistema de 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 2005 (9.x)SQL Server 2005 (9.x) or later but never converted to the SQL Server 2000 (8.x)SQL Server 2000 (8.x) system. version es int.version is int.

Precaución

Este parámetro se proporciona por compatibilidad con las versiones anteriores, pero se omite porque los blobs de hash de contraseña contienen ahora su propia descripción de versión.This parameter is provided for backwards compatibility, but is ignored because password hash blobs now contain their own version descriptions. Esta característica se quitará en la versión siguiente de Microsoft SQL Server.This feature will be removed in the next version of Microsoft SQL Server. No utilice esta característica en nuevos trabajos de desarrollo y modifique lo antes posible las aplicaciones que actualmente la utilizan.Do not use this feature in new development work, and modify applications that currently use this feature as soon as possible.

Tipos devueltosReturn Types

intint

Devuelve 1 si el valor hash de clear_text_password coincide con el parámetro password_hash y 0 si no coincide.Returns 1 if the hash of the clear_text_password matches the password_hash parameter, and 0 if it does not.

NotasRemarks

La función PWDCOMPARE no es una amenaza contra la seguridad de los valores hash de las contraseñas porque podría realizarse la misma prueba intentando iniciar sesión con la contraseña proporcionada como primer parámetro.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 no se puede usar con las contraseñas de usuarios de base de datos independiente.PWDCOMPARE cannot be used with the passwords of contained database users. No hay una base de datos independiente equivalente.There is no contained database equivalent.

PermisosPermissions

PWDENCRYPT está disponible al público.PWDENCRYPT is available to public.

Se requiere el permiso CONTROL SERVER para examinar la columna password_hash de sys.sql_logins.CONTROL SERVER permission is required to examine the password_hash column of sys.sql_logins.

EjemplosExamples

A.A. Identificar los inicios de sesión que no tienen contraseñasIdentifying logins that have no passwords

El ejemplo siguiente identifica los inicios de sesión de SQL ServerSQL Server que no tienen contraseñas.The following example identifies SQL ServerSQL Server logins that have no passwords.

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

B.B. Buscar contraseñas comunesSearching for common passwords

Para buscar contraseñas comunes que desee identificar y cambiar, especifique la contraseña como primer parámetro.To search for common passwords that you want to identify and change, specify the password as the first parameter. Por ejemplo, ejecute la instrucción siguiente para buscar una contraseña especificada como 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 ;  

Consulte tambiénSee Also

PWDENCRYPT (Transact-SQL) PWDENCRYPT (Transact-SQL)
Funciones de seguridad (Transact-SQL)Security Functions (Transact-SQL)