PWDCOMPARE (Transact-SQL)
Berlaku untuk: SQL Server
Azure SQL Database
Azure SQL Managed Instance
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.
Sintaksis
PWDCOMPARE ( 'clear_text_password'
, password_hash
[ , version ] )
Catatan
Untuk melihat sintaks Transact-SQL untuk SQL Server 2014 (12.x) dan versi yang lebih lama, lihat Dokumentasi versi sebelumnya.
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.
Izin CONTROL SERVER diperlukan untuk memeriksa kolom password_hash sys.sql_logins.
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 ;
Lihat Juga
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk