As SQL Server en iyi yöntemler diyor, " Windows kimlik doğrulaması modu, SQL kimlik doğrulaması daha güvenlidir ." Ve şimdi bilmek istiyorum: SQL Server'ı Windows yönetici haklarına sahip kullanıcıdan korumanın bir yolu var mı?
As SQL Server en iyi yöntemler diyor, " Windows kimlik doğrulaması modu, SQL kimlik doğrulaması daha güvenlidir ." Ve şimdi bilmek istiyorum: SQL Server'ı Windows yönetici haklarına sahip kullanıcıdan korumanın bir yolu var mı?
Yanıtlar:
Hayır.
Bir kullanıcı bir kutunun Windows Yöneticisiyse, kutudaki her şeye sahip olduğunu varsayalım (SQL Server dahil). Windows Yönetici haklarıyla, başka bir kişinin kimliğine bürünerek ( NT AUTHORITY\SYSTEMtüm yerel SQL Server örneklerinde fiili yönetici hakları da dahil olmak üzere ) uyguladığınız herhangi bir hedefli korumayı (kullanıcı adlarını tanımlayan bir oturum açma tetikleyicisi gibi) atlamak çok önemlidir . Denetim de çok yardımcı olmaz, çünkü bunu kolayca kapatabilirler, ancak her ihtimale karşı sahip olmalısınız.
Birine güvenmiyorsanız, onlara Windows Yönetici hakları vermeyin, nokta.
Hayır, yerel yöneticilerin sysadminbir SQL Server örneğine erişmesini tamamen engellemek mümkün değildir .
Örnek tek kullanıcı modunda yeniden başlatılırsa , SQL Server, sysadminaçık bir oturum açma olmasa bile yerel yöneticilerin ayrıcalıklarına izin verecek şekilde kodlanmıştır . Bunun var olmasının nedeni kurtarma amaçlıdır çünkü kendinizi bir örnekten kilitlemek mümkündür.
Bununla birlikte, örnek çok kullanıcılı modda çalışırken (hizmet kesintisi olmadan) erişimi kısıtlamak o kadar da zor değildir. Aaron'un belirttiği gibi, yerel yöneticiler kimliğine bürünebilir NT AUTHORITY\SYSTEM, bu varsayılan sysadminolarak SQL Server 2008'de bir düzeyli oturum açma özelliğine sahiptir . Bu , sunucu çalışırken erişimi kurtarmak için kullanılabilirsysadmin . (Not: SQL Server 2012'de, bu giriş artık bir değil sysadmin.) Bu girişin ne için kullanıldığını tam olarak bilmiyorum (muhtemelen yükseltmeler / düzeltmeler / vb.), Ancak bunun haricinde devre dışı bırakmanın güvenli olduğunu düşünüyorum bu olaylar. Başka kimliğine bürünemez girişler yoksa, erişimi reddetmek için yeterli olmalıdır. Yine, yalnızca örnek çalışıyorsa, kesintisiz .
SQL 2008 ve 2012'de varsayılan olarak, Windows yöneticilerinin SQL Server'a varsayılan erişimi yoktur. Bir Windows yöneticisinin (yani, Etki Alanı Yöneticisi veya Yerel Yönetici olan birinin) erişime sahip olması için, oturum açma işlemlerinin açıkça erişim izni vermesi veya SQL Server'ın içindeki haklarla birlikte erişim izni verdikleri gruba atanması gerekir. Örneği ayarlarken yönetici olarak bir Active Directory oturumu veya grubu belirtmeniz gerekir, ancak bu giriş / grup alan adınızdaki herhangi biri olabilir.
SQL 2005'te BUILTIN\Administratorssysadmin erişim haklarına sahip bir grup vardı. Bu grup yerel yöneticilerin SQL Server'a sysadmin erişimine izin verir. Bu grup SQL Server'dan kaldırılabilir ve bunu yapmak için en iyi uygulamalar olarak kabul edildi.
Bununla birlikte, Windows'un (yerel veya etki alanı) SQL Server'ın yaşadığı sunucuyu etkilemesini önlemenin bir yolu yoktur. Bu, yöneticilerin hizmetleri ve işletim sistemi düzeyi yapılandırmalarını yine de etkileyebileceği, dizin güvenliğini ve diğer işletim sistemi düzeyi görevlerini değiştirebileceği anlamına gelir. Her şeyden önce bu yüzden Windows yöneticisi.
Genel olarak, hem SQL Server hem de Windows gibi yöneticilerinize güvenmelisiniz. Windows yöneticileri SQL Server'ın içindeki görevleri gerçekleştiremez veya verilere (varsayılan olarak) erişemezken, yine de SQL Server'ınızın yaşadığı ortamı denetler. Bu rollere kimin atadığına dikkat etmelisin.