Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Base de dados SQL no Microsoft Fabric
Faz um hash de uma palavra-passe e compara o hash com o hash de uma palavra-passe existente. O PWDCOMPARE pode ser usado para procurar palavras-passe de login SQL Server em branco ou palavras-passe fracas comuns.
Transact-SQL convenções de sintaxe
Sintaxe
PWDCOMPARE ( 'clear_text_password'
, password_hash
[ , version ] )
Arguments
'clear_text_password'
É a palavra-passe não encriptada.
clear_text_password é sysname (nvarchar(128)).
password_hash
É o hash de encriptação de uma palavra-passe.
password_hash é varbinary(128).
Versão
Parâmetro obsoleto que pode ser definido para 1 se password_hash representar um valor de um login anterior ao SQL Server 2000 (8.x) que foi migrado para SQL Server 2005 (9.x) ou posterior, mas nunca convertido para o sistema SQL Server 2000 (8.x).
A versão é int.
Atenção
Este parâmetro é fornecido para compatibilidade retroativa, mas é ignorado porque os blobs de hash de palavra-passe agora contêm as suas próprias descrições de versão. Esse recurso será removido em uma versão futura do SQL Server. Evite usar esse recurso em novos trabalhos de desenvolvimento e planeje modificar aplicativos que atualmente usam esse recurso.
Tipos de devolução
int
Devolve 1 se o hash do clear_text_password corresponder ao parâmetro password_hash , e 0 se não corresponder.
Observações
A função PWDCOMPARE não representa uma ameaça à força dos hashes de palavra-passe porque o mesmo teste poderia ser realizado tentando iniciar sessão usando a palavra-passe fornecida como primeiro parâmetro.
O PWDCOMPARE não pode ser usado com as palavras-passe dos utilizadores de bases de dados contidas. Não existe um equivalente a uma base de dados contida.
Permissions
O PWDENCRYPT está disponível ao público.
Para examinar a coluna password_hash de sys.sql_logins:
- Para o SQL Server 2019 (15.x) e versões anteriores, é necessária a permissão do CONTROL SERVER .
- Para SQL Server 2022 (16.x) e versões posteriores, é necessária a permissão VIEW ANY CRYPTOGRAPHICALLY SECURE DEFINITION .
Examples
A. Identificar logins sem palavras-passe
O exemplo seguinte identifica logins do SQL Server que não têm palavras-passe.
SELECT name FROM sys.sql_logins
WHERE PWDCOMPARE('', password_hash) = 1 ;
B. Procura de palavras-passe comuns
Para procurar palavras-passe comuns que queira identificar e alterar, especifique a palavra-passe como primeiro parâmetro. Por exemplo, execute a seguinte instrução para procurar uma palavra-passe especificada como password.
SELECT name FROM sys.sql_logins
WHERE PWDCOMPARE('password', password_hash) = 1 ;
Conteúdo relacionado
PWDENCRYPT (Transact-SQL)
Funções de segurança (Transact-SQL)
sys.sql_logins (Transact-SQL)