Bagikan melalui


Kebijakan kata sandi

Berlaku untuk:SQL Server

SQL Server dapat menggunakan mekanisme kebijakan kata sandi Windows. Kebijakan kata sandi berlaku untuk login yang menggunakan autentikasi SQL Server, dan untuk pengguna database mandiri dengan kata sandi.

SQL Server dapat menerapkan kebijakan kompleksitas dan kedaluwarsa yang sama yang digunakan di Windows ke kata sandi yang digunakan di dalam SQL Server. Fungsionalitas ini tergantung pada NetValidatePasswordPolicy API.

Catatan

Azure SQL Database memberlakukan kompleksitas kata sandi. Bagian kedaluwarsa kata sandi dan penerapan kebijakan tidak berlaku untuk Azure SQL Database. Untuk informasi tentang kebijakan kata sandi untuk Azure SQL Managed Instance, lihat FAQ SQL Managed Instance kami.

Kompleksitas kata sandi

Kebijakan kompleksitas kata sandi dirancang untuk menghalangi serangan brute force dengan meningkatkan jumlah kemungkinan kata sandi. Saat kebijakan kompleksitas kata sandi diberlakukan, kata sandi baru harus memenuhi panduan berikut:

  • Kata sandi tidak berisi nama akun pengguna.

  • Panjang kata sandi setidaknya delapan karakter.

  • Kata sandi berisi karakter dari tiga dari empat kategori berikut:

    • Huruf besar Latin (A melalui Z)
    • Huruf kecil Latin (a melalui z)
    • Dasar 10 angka (0 melalui 9)
    • Karakter non-infanumerik seperti: tanda seru (!), tanda dolar ($), tanda angka (#), atau persen (%).

Panjang kata sandi bisa hingga 128 karakter. Gunakan kata sandi yang panjang dan kompleks mungkin.

Kedaluwarsa kata sandi

Kebijakan kedaluwarsa kata sandi digunakan untuk mengelola masa pakai kata sandi. Ketika SQL Server memberlakukan kebijakan kedaluwarsa kata sandi, pengguna diingatkan untuk mengubah kata sandi lama, dan akun yang memiliki kata sandi kedaluwarsa dinonaktifkan.

Penegakan kebijakan

Penerapan kebijakan kata sandi dapat dikonfigurasi secara terpisah untuk setiap login SQL Server. Gunakan ALTER LOGIN untuk mengonfigurasi opsi kebijakan kata sandi dari login SQL Server. Aturan berikut berlaku untuk konfigurasi penegakan kebijakan kata sandi:

  • Ketika CHECK_POLICY diubah menjadi ON, perilaku berikut terjadi:

    • CHECK_EXPIRATION juga diatur ke ON kecuali secara eksplisit diatur ke OFF.
    • Riwayat kata sandi diinisialisasi dengan nilai hash kata sandi saat ini.
    • Durasi penguncian akun, ambang batas penguncian akun, dan reset penghitung penguncian akun setelah juga diaktifkan.
  • Ketika CHECK_POLICY diubah menjadi OFF, perilaku berikut terjadi:

    • CHECK_EXPIRATION juga diatur ke OFF.
    • Riwayat kata sandi dihapus.
    • Nilai direset lockout_time .

Beberapa kombinasi opsi kebijakan tidak didukung.

  • Jika MUST_CHANGE ditentukan, CHECK_EXPIRATION dan CHECK_POLICY harus diatur ke ON. Jika tidak, pernyataan gagal.

  • Jika CHECK_POLICY diatur ke OFF, CHECK_EXPIRATION tidak dapat diatur ke ON. Pernyataan ALTER LOGIN yang memiliki kombinasi opsi ini gagal.

  • Pengaturan CHECK_POLICY = ON mencegah pembuatan kata sandi yang:

    • Null atau kosong
    • Sama seperti nama komputer atau login
    • Salah satu hal berikut: password, , admin, administrator, sasysadmin

Kebijakan keamanan mungkin diatur di Windows, atau mungkin diterima dari domain. Untuk melihat kebijakan kata sandi di komputer, gunakan snap-in MMC Kebijakan Keamanan Lokal (secpol.msc).

Catatan

Untuk login SQL Server yang telah CHECK_POLICY diaktifkan, jika Anda menjalankan ALTER LOGIN dan tidak menyertakan OLD_PASSWORD dalam perintah untuk mengubah kata sandi, maka Terapkan Riwayat Kata Sandi diabaikan. Ini adalah perilaku berdasarkan desain untuk memungkinkan pengaturan ulang kata sandi, meskipun kata sandi yang digunakan sebelumnya. Pemeriksaan lain yang terkait dengan CHECK_POLICY, termasuk panjang dan kompleksitas diperiksa terlepas dari apakah OLD_PASSWORD digunakan.

Periksa informasi kebijakan kata sandi pengguna SQL

Anda dapat meninjau kebijakan kata sandi pengguna SQL dan tanggal kedaluwarsa di SQL Server menggunakan kueri berikut. Meskipun kueri berikut juga berfungsi di Azure SQL Database, hanya kompleksitas kata sandi yang diberlakukan di Azure SQL Database.

SELECT name,
       is_policy_checked,
       is_expiration_checked,
       LOGINPROPERTY(name, 'IsMustChange') AS IsMustChange,
       LOGINPROPERTY(name, 'IsLocked') AS IsLocked,
       LOGINPROPERTY(name, 'LockoutTime') AS LockoutTime,
       LOGINPROPERTY(name, 'PasswordLastSetTime') AS PasswordLastSetTime,
       LOGINPROPERTY(name, 'IsExpired') AS IsExpired,
       LOGINPROPERTY(name, 'BadPasswordCount') AS BadPasswordCount,
       LOGINPROPERTY(name, 'BadPasswordTime') AS BadPasswordTime,
       LOGINPROPERTY(name, 'HistoryLength') AS HistoryLength,
       modify_date
FROM sys.sql_logins;