Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Berlaku untuk:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Database SQL di Microsoft Fabric
Hash kata sandi dan membandingkan hash dengan hash kata sandi yang ada. PWDCOMPARE dapat digunakan untuk mencari kata sandi masuk SQL Server kosong atau kata sandi lemah umum.
Sintaks
PWDCOMPARE ( 'clear_text_password'
, password_hash
[ , version ] )
Argumen
'clear_text_password'
Adalah kata sandi yang tidak terenkripsi.
clear_text_password adalah sysname (nvarchar(128)).
password_hash
Adalah hash enkripsi kata sandi.
password_hash adalah varbinary(128).
versi
Parameter usang yang dapat diatur ke 1 jika password_hash mewakili nilai dari login yang lebih lama dari SQL Server 2000 (8.x) yang dimigrasikan ke SQL Server 2005 (9.x) atau yang lebih baru tetapi tidak pernah dikonversi ke sistem SQL Server 2000 (8.x).
versi int.
Perhatian
Parameter ini disediakan untuk kompatibilitas mundur, tetapi diabaikan karena blob hash kata sandi sekarang berisi deskripsi versi mereka sendiri. Fitur ini akan dihapus dalam versi SQL Server yang akan datang. Hindari menggunakan fitur ini dalam pekerjaan pengembangan baru, dan rencanakan untuk memodifikasi aplikasi yang saat ini menggunakan fitur ini.
Jenis Kembalian
int
Mengembalikan 1 jika hash clear_text_password cocok dengan parameter password_hash , dan 0 jika tidak.
Keterangan
Fungsi PWDCOMPARE bukan ancaman terhadap kekuatan hash kata sandi karena pengujian yang sama dapat dilakukan dengan mencoba masuk menggunakan kata sandi yang disediakan sebagai parameter pertama.
PWDCOMPARE tidak dapat digunakan dengan kata sandi pengguna database mandiri. Tidak ada database yang berisi yang setara.
Izin
PWDENCRYPT tersedia untuk umum.
Untuk memeriksa kolom password_hash sys.sql_login:
- Untuk SQL Server 2019 (15.x) dan versi yang lebih lama, izin CONTROL SERVER diperlukan.
- Untuk SQL Server 2022 (16.x) dan versi yang lebih baru, izin LIHAT DEFINISI YANG AMAN SECARA KRIPTOGRAFIS diperlukan.
Contoh
J. Mengidentifikasi login yang tidak memiliki kata sandi
Contoh berikut mengidentifikasi login SQL Server yang tidak memiliki kata sandi.
SELECT name FROM sys.sql_logins
WHERE PWDCOMPARE('', password_hash) = 1 ;
B. Mencari kata sandi umum
Untuk mencari kata sandi umum yang ingin Anda identifikasi dan ubah, tentukan kata sandi sebagai parameter pertama. Misalnya, jalankan pernyataan berikut untuk mencari kata sandi yang ditentukan sebagai password.
SELECT name FROM sys.sql_logins
WHERE PWDCOMPARE('password', password_hash) = 1 ;
Konten terkait
PWDENCRYPT (T-SQL)
Fungsi Keamanan (T-SQL)
sys.sql_logins (T-SQL)