Aracılığıyla paylaş


Parola ilkesi

Şunlar için geçerlidir: SQL Server

SQL Server, Windows parola ilkesi mekanizmalarını kullanabilir. Parola ilkesi, SQL Server kimlik doğrulaması kullanan bir oturum açma bilgileri ve parola içeren bir veritabanı kullanıcısı için geçerlidir.

SQL Server, WINDOWS'ta kullanılan karmaşıklık ve süre sonu ilkelerini SQL Server içinde kullanılan parolalara uygulayabilir. Bu işlev API'ye NetValidatePasswordPolicy bağlıdır.

Uyarı

Azure SQL Veritabanı parola karmaşıklığını zorlar. Parola süresi dolma ve ilke uygulama bölümleri Azure SQL Veritabanı için geçerli değildir. Azure SQL Yönetilen Örnek parola ilkesi hakkında bilgi için bkz. SQL Yönetilen Örnek SSS.

Parola karmaşıklığı

Parola karmaşıklığı ilkeleri, olası parola sayısını artırarak deneme yanılma saldırılarını caydıracak şekilde tasarlanmıştır. Parola karmaşıklığı ilkesi uygulandığında, yeni parolaların aşağıdaki yönergeleri karşılaması gerekir:

  • Parola kullanıcının hesap adını içermiyor.

  • Parola en az sekiz karakter uzunluğundadır.

  • Parola, aşağıdaki dört kategoriden üçünün karakterlerini içerir:

    • Latin büyük harfler (A ile Z)
    • Latin küçük harfler (a ile z)
    • Temel 10 basamak (0 ile 9)
    • Alfanümerik olmayan karakterler, örneğin ünlem işareti (!), dolar işareti ($), sayı işareti (#) veya yüzde işareti (%).

Parolalar en çok 128 karakter uzunluğunda olabilir. Mümkün olduğunca uzun ve karmaşık parolalar kullanın.

Parola süre sonu

Parola süre sonu ilkeleri, parolanın kullanım süresini yönetmek için kullanılır. SQL Server parola süre sonu ilkesini zorunlu kıldığında, kullanıcılara eski parolaları değiştirmeleri anımsatılır ve süresi dolmuş parolaları olan hesaplar devre dışı bırakılır.

İlke uygulama

Parola ilkesinin uygulanması, her SQL Server oturum açma işlemi için ayrı olarak yapılandırılabilir. SQL Server oturum açma bilgilerinin parola ilkesi seçeneklerini yapılandırmak için ALTER LOGIN kullanın. Parola politikası uygulaması için aşağıdaki kurallar geçerlidir:

  • CHECK_POLICY ON olarak değiştirildiğinde, aşağıdaki davranışlar gerçekleşir:

    • CHECK_EXPIRATION, ON olarak ayarlıdır, aksi halde açıkça OFF olarak ayarlanmadıkça.
    • Parola geçmişi, geçerli parola karması değeriyle başlatılır.
    • Hesap kilitleme süresi, hesap kilitleme eşiği ve hesap kilitleme sayacını sıfırladıktan sonra da etkinleştirilir.
  • " CHECK_POLICYOFF olarak değiştirildiğinde, aşağıdaki davranışlar gerçekleşir:"

    • CHECK_EXPIRATION ayrıca OFF olarak ayarlanır.
    • Parola geçmişi temizlendi.
    • lockout_time'ün değeri sıfırlanır.

İlke seçeneklerinin bazı bileşimleri desteklenmez.

  • Eğer MUST_CHANGE belirtilirse, CHECK_EXPIRATION ve CHECK_POLICYON olarak ayarlanmalıdır. Aksi takdirde, deyimi başarısız olur.

  • Eğer CHECK_POLICY, OFF olarak ayarlanırsa, CHECK_EXPIRATION, ON olarak ayarlanamaz. ALTER LOGIN Bu seçenek bileşimine sahip bir deyim başarısız olur.

  • Ayar CHECK_POLICY = ON , aşağıdaki parolaların oluşturulmasını engeller:

    • Null veya boş
    • Bilgisayar adı veya oturum açma adıyla aynı
    • Aşağıdakilerden herhangi biri: password, admin, administrator, sa, sysadmin

Güvenlik ilkesi Windows'ta ayarlanmış veya etki alanından alınmış olabilir. Bilgisayardaki parola ilkesini görüntülemek için Yerel Güvenlik İlkesi MMC ek bileşenini (secpol.msc) kullanın.

Uyarı

SQL Server oturum açma bilgileri CHECK_POLICY etkinleştirilmişse, ALTER LOGIN komutunu çalıştırır ve parolayı değiştirmek için komuta OLD_PASSWORD eklemezseniz, Parola Geçmişini Zorla yoksayılır. Bu, daha önce kullanılan parolalara rağmen parola sıfırlamalarına izin vermek için tasarım gereği bir davranıştır. ile CHECK_POLICYilişkili uzunluk ve karmaşıklık gibi diğer denetimler, kullanılıp kullanılmadığına OLD_PASSWORD bakılmaksızın denetleniyor.

SQL kullanıcı parolası ilke bilgilerini denetleme

AŞAĞıDAKI sorguyu kullanarak SQL Server'da SQL kullanıcı parola ilkelerini ve son kullanma tarihlerini gözden geçirebilirsiniz. Aşağıdaki sorgu Azure SQL Veritabanı'nda da çalışsa da, Azure SQL Veritabanı'nda yalnızca parola karmaşıklığı uygulanır.

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;