Megosztás a következőn keresztül:


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.
  • SQL Server 2022 (16.x) és későbbi verzióknál szükséges a VIEW 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)