Bu kullanıcılarınız arasında popüler olmayabilir, ancak emin olabilirsiniz tek yolu her SQL giriş için bir şifre değişikliği zorlamak olduğuna inanıyorum CHECK_POLICY = ON
. Bu, ALTER LOGIN
boş parolalarla bir dizi komut oluşturacak, tüm ortak bir parola vererek sorguyu güncelleyebilir veya her birini tek tek parolalarla manuel olarak güncelleyebilirsiniz - yalnızca politikanıza uyduğundan emin olun. Elbette, şifre politikasının beklediğiniz kadar karmaşık olduğundan ve etkinleştirildiğinden emin olmanız gerekir (Denetim Masası> Yönetim Araçları> Yerel Güvenlik Politikası> Hesap Politikaları> Şifre Politikası> Şifre karmaşıklık gereksinimlerini karşılamalıdır).
SELECT N'ALTER LOGIN ' + QUOTENAME(name)
+ N' WITH PASSWORD = N'''' MUST_CHANGE, CHECK_POLICY = ON;'
FROM sys.sql_logins
--WHERE is_policy_checked = 0;
Steve Jones bunu bir süre önce yazdı . - Aşağıda ortaya çıkardığım şey nedeniyle - is_policy_checked = 1
girişin karma bir şifre ile oluşturulmuş olabileceğinden (bu durumda düz metin şifresi olamaz) şifrenin aslında mevcut politikanızı karşıladığına güvenemeyeceğinizi unutmayın. işaretlenir) veya yerel karmaşıklık politikası devre dışı bırakılırken (yine de buna yol açar is_policy_checked = 1
).
İşe yarayacağını düşündüğüm başka bir yaklaşım , her girişin mevcut ve birlikte bir kopyasını oluşturmak ve başarısız olan her birini not etmek olacaktır. Ancak, bu çalışmaz - zaten karma bir parolanın doğrulamasını yapmaz. Gelecek kuşak için kod ekleyeceğim - ancak tasarım gereği politika kontrol edilemez.password_hash
CHECK_POLICY = ON
CHECK_POLICY = ON
SELECT N'BEGIN TRY
CREATE LOGIN ' + QUOTENAME(N'copy_of_' + name)
+ N' WITH PASSWORD = '
+ CONVERT(NVARCHAR(255), password_hash, 1)
+ ' HASHED, CHECK_POLICY = ON;
DROP LOGIN ' + QUOTENAME(N'copy_of_' + name) + ';
END TRY
BEGIN CATCH
IF ERROR_NUMBER() = 15118
PRINT N''' + REPLACE(name, '''', '''''')
+ N' was not complex enough.'';
END CATCH'
FROM sys.sql_logins;
Şahsen, bunun bir hata olduğunu düşünüyorum. Sözdizimi karma bir parola kullanarak bir giriş oluşturmama izin veriyorsa ve bu parolanın karmaşıklık ilkemi karşılaması gerektiğini şart koşarsam, ilkenin aslında kontrol edilmediğine dair bir hata veya uyarı oluşturması gerekir.
GÜNCELLEME : Bu davranışa karşı bir hata bildirdim.