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 penegakan 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 hingga Z)

    • Huruf kecil Latin (a sampai z)

    • Basis 10 digit (0 hingga 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 (Transact-SQL) untuk mengonfigurasi opsi kebijakan kata sandi dari login SQL Server. Aturan berikut berlaku untuk konfigurasi penegakan kebijakan kata sandi:

  • Saat CHECK_POLICY diubah menjadi AKTIF, perilaku berikut terjadi:

    • CHECK_EXPIRATION juga diatur ke AKTIF kecuali diatur secara eksplisit ke NONAKTIF.

    • 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.

  • Saat CHECK_POLICY diubah ke NONAKTIF, perilaku berikut terjadi:

    • CHECK_EXPIRATION juga diatur ke NONAKTIF.

    • 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 AKTIF. Jika tidak, pernyataan gagal.

  • Jika CHECK_POLICY diatur ke NONAKTIF, CHECK_EXPIRATION tidak dapat diatur ke AKTIF. Pernyataan UBAH LOGIN yang memiliki kombinasi opsi ini akan gagal.

  • Pengaturan CHECK_POLICY = AKTIF mencegah pembuatan kata sandi yaitu:

    • 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.

Memeriksa 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;

CREATE LOGIN (Transact-SQL)

UBAH LOGIN (Transact-SQL)

CREATE USER (Transact-SQL)

ALTER USER (Transact-SQL)

Membuat Login

Membuat Pengguna Database