Baktığımda sys.sql_logins, adlı bir sütun görüyorum is_policy_checked. Bu sütun değerinin olduğu tüm girişler için şifre politikamın kontrol edildiğinden emin olabilir miyim 1?
Baktığımda sys.sql_logins, adlı bir sütun görüyorum is_policy_checked. Bu sütun değerinin olduğu tüm girişler için şifre politikamın kontrol edildiğinden emin olabilir miyim 1?
Yanıtlar:
Belgeler şu anda bu bayrağın ne anlama geldiği konusunda şu belirsiz belirsiz ifadeye sahip olsa da:
Şifre politikası kontrol edildi.
Gerçekten ne anlama geldiğini ve söylemeliyiz ki bayrak iki amaca hizmet ediyor:
- Parola ilkesi kontrol edilmiş olabilir , ancak (a) parola en son ayarlandığı sırada parola ilkesi etkinleştirildiyse ve (b) parola düz metinle belirtilmişse (karma ile değil).
- Parola ilkesi , ilke bir sonraki ayarlandığında denetlenir, ancak (a) o anda parola ilkesi etkinleştirilirse ve (b) parola düz metinle belirtilirse (karma ile değil).
(Ve "politika" da, son kullanma tarihini ve kullanıcının bir sonraki girişte şifreyi değiştirmesi gerektiği anlamına geldiğini unutmayın, ancak karmaşıklık genellikle denetim işlemlerinin odağı olduğundan, yalnızca bu konuya odaklanacağım. )
is_policy_checkedBit ayarlandığında 1eğer CHECK_POLICY = ONbir sırasında CREATE LOGINya da ALTER LOGINpolitika anda kontrol olmasa bile, olayın. Muhtemelen yukarıdan toplayabileceğiniz gibi, bu kontrol şu senaryolarda gerçekleşmez:
HASHEDanahtar kelime kullanılarak belirtilir (sunucular arasında oturum açma işlemleri yapılırken veya oturum açma / yansıtılmış / AG ikincil kayıtlarını günlüğe kaydetmek için çok yaygın bir taktik). Önceden karma değere sahip değilseniz, şifrenin karmaşıklığını kontrol etmek kesinlikle mümkün değildir.ALTER LOGINyeni bir şifre belirlemeden ve yine de bayrağı değiştirebilirsiniz ( bunu göstermek için @AMtwo'ya teşekkürler ). Bunun bir denetçiyi kandırmaya çalışan zeki insanlar tarafından yapılmış olabileceğinden şüpheleniyorum.Bu problemlerin hepsini göstermek kolaydır.
Bu konuda konuştuğum çoğu insan her zaman bunun is_policy_checkedaslında mevcut şifrenin mevcut şifre politikasını karşıladığı anlamına geldiğini varsaydığından , kullanıcıların bir şeylerin değişmesi önemlidir, böylece kullanıcılar doğru beklentilere sahiptir ve bu bayrağın mutlaka anlamına gelmediğini anlarlar. herşey iyi. En azından, yukarıda belirttiğim gibi, dokümantasyon gerçeği yansıtacak şekilde güncellenmelidir. Ama yapılabilecek başka şeyler de var.
CHECK_POLICY = ONbelirtilirse, ancak ilke aslında denetlenemez (parola bir karma ile belirtildiği veya parola ilkesi devre dışı bırakıldığı veya komutun atlamak için basit bir girişim olduğu için) veya bayrağını ayarlayın, örneğin ALTER LOGIN blat WITH CHECK_POLICY = ON;).CHECK_POLICYACTIVELY_CHECK_POLICYve belki de lehine itiraz edilebilirdi CHECK_POLICY_ON_NEXT_CHANGE. Sütunlar sys.sql_loginsolmalıdır policy_has_been_checkedve policy_will_be_checked. Bu isimlerle evli değilim, ama mevcut ifadelerden çok daha doğrular.ACTIVELY_CHECK_POLICY = ONve komutun yürütülmesi sırasında ilke denetlenemezse, bir hata iletisi almalıyım ve bayrak ayarlanmamalı 1(hatta oturum açma oluşturma veya parola değişikliği başarılı olmamalıdır).0, bu baypaslar tanımlanabilir).Bugün, SQL girişlerinizi denetlemek ve hepsinin karmaşıklık politikanızı karşıladığından emin olmak için parolalarını güvenli olduğunu bildiğiniz bir şeye manuel olarak değiştirmeden güvenilir bir yol yoktur. Bu gün ve sürekli artan veri yaşı, daha fazla veri ihlali ve sistemleri daha sıkı ve daha sıkı bir şekilde güvenli hale getirme ihtiyacı, bu ele alınması gereken bir sorundur. Bu konuda blog yazdım ve bununla ilgili bir Connect öğesi oluşturdum:
Connect öğesine oy vermenizi ve daha da önemlisi, sistemlerinizi bu DDL seçeneğinin ve meta verilerin nasıl çalıştığına ilişkin yanlış algılarla denetlemediğinizden emin olun.
Çünkü kenara "non-sorun" olarak bu fırça Lütfen sen nasıl çalıştığını mükemmel rahat ve zaten bayrak güvenilemez biliyorum - Benim endişe ediyorum kullanıcı değildir; diğer herkes.