In den Best Practices von SQL Server heißt es: "Der Windows-Authentifizierungsmodus ist sicherer als die SQL-Authentifizierung. " Und jetzt möchte ich wissen: Gibt es eine Möglichkeit, SQL Server vor Benutzern mit Windows-Administratorrechten zu schützen?
sql-server
sql-server-2008
security
Tsionyx
quelle
quelle
Antworten:
Nein.
Wenn ein Benutzer ein Windows-Administrator einer Box ist, nehmen Sie an, dass er alles auf der Box besitzt (einschließlich SQL Server). Mit Windows-Administratorrechten ist es trivial, den von Ihnen angewendeten gezielten Schutz (z. B. einen Anmeldetrigger, der den Benutzernamen identifiziert) zu umgehen, indem Sie sich als eine andere Person ausgeben (einschließlich
NT AUTHORITY\SYSTEM
der De-facto-Administratorrechte für alle lokalen SQL Server-Instanzen ). Auditing hilft auch nicht viel, weil sie das leicht ausschalten können, aber Sie sollten es nur für den Fall haben.Wenn Sie jemandem nicht vertrauen, geben Sie ihm keine Windows-Administratorrechte.
quelle
Nein, es ist nicht möglich, lokale Administratoren vollständig daran zu hindern, zu gewinnen
sysadmin
Zugriff auf eine SQL Server-Instanz zu erhalten.Wenn die Instanz im Einzelbenutzermodus neu gestartet wird , ist SQL Server fest codiert, um lokale Administratoren zuzulassen
sysadmin
, auch wenn möglicherweise keine explizite Anmeldung erfolgt. Der Grund dafür ist zu Wiederherstellungszwecken, da es möglich ist, sich von einer Instanz auszuschließen.Das Einschränken des Zugriffs, während die Instanz im Mehrbenutzermodus (ohne Dienstunterbrechungen) ausgeführt wird, ist jedoch nicht so schwierig. Wie Aaron bereits erwähnt hat, können sich lokale Administratoren
NT AUTHORITY\SYSTEM
alssysadmin
Benutzer ausgeben , für die standardmäßig eine Anmeldung auf Ebene in SQL Server 2008 erstellt wurde. Dies kann genutzt werden , um densysadmin
Zugriff wiederherzustellen, während der Server ausgeführt wird. (Hinweis: In SQL Server 2012 ist diese Anmeldung nicht mehr asysadmin
.) Ich weiß nicht genau, wofür diese Anmeldung verwendet wird (Upgrades / Hotfixes / etc., Vermutlich), aber ich denke, es ist sicher, sie zu deaktivieren, außer während diese Ereignisse. Wenn keine anderen unpersönlichen Anmeldungen vorhanden sind, sollte dies ausreichen, um den Zugriff zu verweigern. Wieder nur, wenn die Instanz ausgeführt wird, ohne Unterbrechung .quelle
Standardmäßig gibt es in SQL 2008 und 2012 keinen Standardzugriff für Windows-Administratoren auf einen SQL Server. Damit ein Windows-Administrator (dh jemand, der entweder ein Domänenadministrator oder ein lokaler Administrator ist) Zugriff hat, muss seiner Anmeldung explizit Zugriff gewährt werden oder der Gruppe, zu der er gehört, zusammen mit Rechten in SQL Server selbst Zugriff gewährt werden. Beim Einrichten der Instanz müssen Sie eine Active Directory-Anmeldung oder -Gruppe als Administrator angeben. Diese Anmeldung / Gruppe kann jedoch eine beliebige Person in Ihrer Domäne sein.
In SQL 2005 gab es eine
BUILTIN\Administrators
Gruppe mit Sysadmin-Zugriffsrechten. Diese Gruppe würde lokalen Administratoren den Systemadministratorzugriff auf SQL Server ermöglichen. Diese Gruppe kann aus SQL Server entfernt werden und wurde als bewährte Methode angesehen.Es gibt jedoch keine Möglichkeit zu verhindern, dass Windows (lokal oder domänenbezogen) den Server beeinflusst, auf dem SQL Server lebt. Dies bedeutet, dass die Administratoren weiterhin Dienste und Konfigurationen auf Betriebssystemebene, Verzeichnissicherheit und andere Aufgaben auf Betriebssystemebene beeinflussen können. Dies ist schließlich der Grund, warum sie Windows-Administratoren sind.
Im Allgemeinen sollten Sie Ihren Administratoren vertrauen, sowohl SQL Server als auch Windows. Die Windows-Administratoren können zwar keine Aufgaben ausführen oder (standardmäßig) nicht auf Daten im SQL Server selbst zugreifen, sie steuern jedoch weiterhin die Umgebung, in der sich Ihr SQL Server befindet. Sie müssen darauf achten, wen Sie diesen Rollen zuweisen.
quelle