Not
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Gäller för:SQL Server
Azure SQL Database
Azure SQL Managed Instance
SQL-databas i Microsoft Fabric
Hashar ett lösenord och jämför hashen med hashen för ett befintligt lösenord. PWDCOMPARE kan användas för att söka efter tomma SQL Server-inloggningslösenord eller vanliga svaga lösenord.
Transact-SQL syntaxkonventioner
Syntax
PWDCOMPARE ( 'clear_text_password'
, password_hash
[ , version ] )
Arguments
'clear_text_password'
Det är det okrypterade lösenordet.
clear_text_password är sysname (nvarchar(128)).
password_hash
Är krypteringshashen av ett lösenord.
password_hash är varbinär(128).
version
Föråldrad parameter som kan sättas till 1 om password_hash representerar ett värde från en inloggning tidigare än SQL Server 2000 (8.x) som migrerades till SQL Server 2005 (9.x) eller senare men aldrig konverterades till SQL Server 2000 (8.x)-systemet.
versionen är int.
Försiktighet
Denna parameter tillhandahålls för bakåtkompatibilitet, men ignoreras eftersom lösenordshash-blobs nu innehåller egna versionsbeskrivningar. Den här funktionen tas bort i en framtida version av SQL Server. Undvik att använda den här funktionen i nytt utvecklingsarbete och planera att ändra program som för närvarande använder den här funktionen.
Returtyper
int
Returnerar 1 om hashen för clear_text_password matchar parametern password_hash , och 0 om den inte gör det.
Anmärkningar
PWDCOMPERATE-funktionen utgör inget hot mot styrkan hos lösenordshashar eftersom samma test kan utföras genom att försöka logga in med det lösenord som anges som första parameter.
PWDCOMPARE kan inte användas med lösenord från användare av den inneslutna databasen. Det finns ingen motsvarande motsvarande inneslutna databaser.
Permissions
PWDENCRYPT är tillgängligt för allmänheten.
För att undersöka password_hash kolumnen sys.sql_logins:
- För SQL Server 2019 (15.x) och tidigare versioner krävs behörigheten CONTROL SERVER .
- För SQL Server 2022 (16.x) och senare versioner krävs behörigheten VIEW ANY CRYPTOGRAPHICALLY SECURED DEFINITION .
Examples
A. Identifiera inloggningar som saknar lösenord
Följande exempel identifierar SQL Server-inloggningar som saknar lösenord.
SELECT name FROM sys.sql_logins
WHERE PWDCOMPARE('', password_hash) = 1 ;
B. Sökning efter vanliga lösenord
För att söka efter vanliga lösenord som du vill identifiera och ändra, ange lösenordet som första parameter. Till exempel, kör följande sats för att söka efter ett lösenord som specificeras som password.
SELECT name FROM sys.sql_logins
WHERE PWDCOMPARE('password', password_hash) = 1 ;
Relaterat innehåll
PWDENCRYPT (Transact-SQL)
Säkerhetsfunktioner (Transact-SQL)
sys.sql_logins (Transact-SQL)