PWDCOMPARE (Transact-SQL)

A következőkre vonatkozik:SQL ServerAzure SQL DatabaseFelügyelt Azure SQL-példánySQL-adatbázis a Microsoft Fabricben

Hash-et tesz egy jelszót, és összehasonlítja a hash-et egy meglévő jelszó hash-ével. A PWDCOMPARE használható üres SQL Server bejelentkezési jelszavak vagy gyakori gyenge jelszavak keresésére.

Transact-SQL szintaxis konvenciók

Szemantika

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

Arguments

'clear_text_password'
A titkosítatlan jelszó. clear_text_password a sysname (nvarchar(128)).

password_hash
Ez egy jelszó titkosítási hash-je. password_hashvarbináris(128).

version
Elavult paraméter, amely beállítható, ha password_hash egy SQL Server 2000 (8.x) előtti bejelentkezésből származó értéket képvisel, amelyet SQL Server 2005-re (9.x) vagy később migráltak, de soha nem konvertáltak SQL Server 2000 (8.x) rendszerre. A verzióint.

Caution

Ez a paraméter a visszafelé kompatibilitás érdekében van megadva, de figyelmen kívül hagyják, mert a jelszó hash blob-ok most már saját verzióleírásokat tartalmaznak. Ez a funkció az SQL Server egy későbbi verziójában lesz eltávolítva. Ne használja ezt a funkciót az új fejlesztési munkában, és tervezze meg a funkciót jelenleg használó alkalmazások módosítását.

Visszatérési típusok

int

1-et ad vissza, ha a clear_text_password hash-je egyezik az password_hash paraméterrel, és 0-ot, ha nem.

Megjegyzések

A PWDCOMPARE függvény nem jelent fenyegetést a jelszó hash-ek erejére, mert ugyanaz a teszt elvégezhető azzal, hogy megpróbálnak bejelentkezni az első paraméterként megadott jelszóval.

A PWDCOMPARE nem használható a tárolt adatbázis-felhasználók jelszavakkal. Nincs beépített adatbázis megfelelője.

Permissions

A PWDENCRYPT elérhető a nagyközönség számára.

A sys.sql_loginspassword_hash oszlopának vizsgálata:

  • SQL Server 2019 (15.x) és korábbi verzióknál a CONTROL SERVER engedély szükséges.
  • Az SQL Server 2022 (16.x) és későbbi verzióknál szükséges azVIEW ANY CRYPTOGRAPHICALLY SECURED DEFINITION engedély.

Példák

A. Olyan bejelentkezések azonosítása, amelyeknek nincs jelszavuk

Az alábbi példa az SQL Server bejelentkezéseket azonosítja, amelyeknek nincs jelsza.

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

B. Gyakori jelszavak keresése

Ha keres olyan gyakori jelszavakat, amelyeket azonosítani és megváltoztatni szeretnél, az első paraméterként megadd a jelszót. Például hajtsuk végre a következő utasítást, hogy keressünk egy jelszót, amelyet úgy jelöltek meg.password

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

PWDENCRYPT (Transact-SQL)
Biztonsági funkciók (Transact-SQL)
sys.sql_logins (Transact-SQL)