Wie Sie unerwünschten Zugriff auf SQL Server 2005 vom Administrator Betriebssystem erschweren


Einführung


Microsoft SQL Server 2005-Setupprogramm erstellt eine lokale Windows-Gruppe für jeden Dienst, die Sie installieren. SQL Server 2005-Setupprogramm hinzugefügt der jeweiligen Gruppe das Dienstkonto für jeden Dienst. Windows-Domänengruppen werden einer SQL Server-Failovercluster-Installation auf die gleiche Weise verwendet. Domänengruppen müssen von einem Domänenadministrator vor dem Ausführen von SQL Server 2005-Setupprogramm erstellt werden. Alle Windows NT Rechte und Berechtigungen, die von einem bestimmten Dienst benötigt werden durch System Access Control List (SACL) jeder Windows-Gruppe hinzugefügt. Der Domänenadministrator gewährt keine Berechtigungen direkt für das Dienstkonto.

Darüber hinaus sind Windows-Gruppen, die für SQL Server 2005, SQL Server-Agent und die Gruppe VORDEFINIERT\Administratoren erstellt SQL Server 2005-Benutzernamen gewährt, die in der festen Serverrolle SYSADMIN von SQL Server 2005 bereitgestellt werden. Diese Konfiguration ermöglicht ein Konto, das Mitglied dieser Gruppen eine Windows NT authentifizierten Verbindung zu SQL Server 2005 anmelden. Der Benutzer verfügt über eine Mitgliedschaft in der festen Serverrolle SYSADMIN von SQL Server wird der Benutzer in SQL Server 2005 als SQL Server 2005 Systemadministrator angemeldet. (Des angemeldete Benutzers wird mit dem sa-Konto). Dann hat der Benutzer die Installation von SQL Server 2005 und seine Daten uneingeschränkten Zugriff. Auch jeder weiß, dass das Kennwort für die Instanz von SQL Server 2005 oder SQL Server-Agent-Dienstkonto nutzen kann Benutzer Konto an dem Computer anmelden. Anschließend kann Benutzer Windows NT authentifizierten Verbindung auf SQL Server 2005 als SQL Server-Administrator festlegen.

Windows-Gruppen, die für SQL Server 2005 Reporting Services (SSRS) und die Volltextsuche erstellt erhalten auch SQL Server-Benutzernamen. Allerdings sind Reporting Services und der Volltext-Suchdienst in der festen Serverrolle SYSADMIN nicht bereitgestellt.

Einige SQL Server 2005-Administratoren möchten Funktionen des Datenbankadministrators und des Betriebssystems Administrators streng voneinander getrennt werden. Diese Administratoren möchten SQL Server 2005 gegen unerwünschte Zugriffe betriebssystemadministrator schützen.

Weitere Informationen


Wie Sie unerwünschten Zugriff auf SQL Server 2005 vom Administrator Betriebssystem erschweren

Um unerwünschten Zugriff auf SQL Server 2005 vom Administrator Betriebssystem erschweren, müssen Sie Berechtigungen entfernen, die Gruppe VORDEFINIERT\Administratoren erteilt wurden. Dann müssen Sie Benutzernamen direkt an die Dienstkonten für SQL Server 2005 und SQL Server Agent gewähren. Als Nächstes müssen Sie die Benutzernamen in der festen Serverrolle SYSADMIN bereitstellen. Schließlich müssen Sie die Benutzernamen löschen, die ihre jeweiligen Windows-Gruppen erteilt wurden. Gehen Sie hierzu folgendermaßen vor:
  1. Stellen Sie sicher, dass Sie ein Konto, das Mitglied der festen Serverrolle SYSADMIN ist. Dieses Konto wird die Berechtigung zur Anmeldung an SQL Server 2005 nicht nur durch ein Mitglied der Gruppe BUILTIN\Administrators gewährt.
  2. Entfernen Sie die Gruppe VORDEFINIERT\Administratoren gewährten Berechtigungen. Gehen Sie hierzu folgendermaßen vor:
    1. Melden Sie sich bei SQL Server 2005 mit einem Benutzerkonto, das die ALTER ANY LOGIN-Berechtigung verfügt.
    2. Erweitern Sie Sicherheit, Benutzernamen BUILTIN\AdministratorsMaustaste und klicken Sie dann auf Löschen.
    3. Klicken Sie im Dialogfeld Objekt löschen auf OK.
    Hinweis Nach dem Löschen des Benutzernamens, der die Gruppe VORDEFINIERT\Administratoren erteilt wurde, können ein Konto, das nur auf die Mitgliedschaft in dieser Gruppe Anmelden bei SQL Server 2005 nicht auf SQL Server 2005.

    Informationen zum Microsoft Cluster Service (MSCS)-Dienstkonto finden Sie im Abschnitt "Microsoft Cluster Service (MSCS)-Dienstkonto".
  3. Verwenden Sie ein Konto mit ALTER ANY LOGIN-Berechtigung erteilen explizit SQL Server 2005-Benutzernamen direkt an die Dienstkonten, die von SQL Server 2005 und SQL Server-Agent verwendet werden. Führen Sie hierzu die folgende SQL-Anweisung.
    CREATE LOGIN [<Domain Name>\<SQL Server Service Account>] FROM WINDOWS WITH DEFAULT_DATABASE=[master]
    CREATE LOGIN [<Domain Name >\<SQL Server Agent Service Account>] FROM WINDOWS WITH DEFAULT_DATABASE=[master]
  4. Verwenden Sie ein Konto, das Mitglied der SYSADMIN festen Benutzernamen bereitstellen, die Sie in Schritt 2 SYSADMIN hinzugefügt festen Serverrolle.
    EXEC master..sp_addsrvrolemember @loginame = N'<Domain Name>\<SQL Server Service Account> ', @rolename = N'sysadmin'
    EXEC master..sp_addsrvrolemember @loginame = N'<Domain Name>\<SQL Server Agent Service Account> ', @rolename = N'sysadmin'
  5. Verwenden Sie ein Konto mit ALTER ANY LOGIN-Berechtigung löschen Benutzernamen, die Gruppe SQL Server 2005 und SQL Server Agent Windows-Gruppe erteilt wurden.
    DROP LOGIN [<Computer Name>\<SQLServer2005SQLServerUser>$<Computer Name>$MSSQLSERVER]
    DROP LOGIN [<Computer Name>\<SQLServer2005AgentUser>$<Computer Name>$MSSQLSERVER]
Auch nachdem Sie diese Schritte muss das Kennwort für das Dienstkonto von SQL Server 2005 und SQL Server Agent-Dienstkonto Administrator Betriebssystem gehalten werden. MSCS-Dienstkonto in der festen Serverrolle SYSADMIN bereitgestellt wurde, muss das Dienstkontokennwort MSCS auch vom betriebssystemadministrator gehalten werden. Wenn der Betriebssystem-Administrator das Kennwort für das Dienstkonto von SQL Server 2005 oder SQL Server Agent-Dienstkonto kennt, können Betriebssystem-Administrator das Dienstkonto an einem Computer anmelden. Nach Betriebssystem-Administrator an dem Computer anmeldet, können Administrator Betriebssystem auf die Instanz von SQL Server 2005 als SQL Server-Administrator.

Um der Betriebssystem-Administrator das Kennwort des SQL Server 2005 und SQL Server Agent verwendeten Dienstkonten lernen, muss der SQL Server-Systemadministrator ein neues Kennwort für das Dienstkonto festlegen können. In den meisten Fällen ist der Systemadministrator für SQL Server 2005 nicht Administrator Betriebssystem. Daher muss eine spezielle Dienstprogramm zum Bereitstellen dieser Funktion geschrieben werden. Beispielsweise könnte einen vertrauenswürdigen Dienst erstellen, mit denen der Systemadministrator für SQL Server 2005 die Kennwörter für Dienstkonten ändern, die von SQL Server 2005 verwendet werden. Microsoft bietet dieser Service derzeit nicht.

Microsoft Cluster Service (MSCS)-Dienstkonto

In einer SQL Server 2005 Failover Cluster-Installation abhängig MSCS-Dienstkonto Mitglied der Gruppe BUILTIN\Administrators Anmelden bei SQL Server 2005 die IsAlive-Prüfung ausgeführt. Entfernen die Gruppe BUILTIN\Administrators von einem Failovercluster müssen explizit MSCS Dienstkontoberechtigungen Anmelden bei SQL Server 2005-Failoverclusters gewähren. Führen Sie hierzu die folgende SQL-Anweisung in der Instanz von SQL Server 2005.
CREATE LOGIN [<Domain Name>\<MSCS Service Account>] FROM WINDOWS WITH DEFAULT_DATABASE=[master]
SQL Server 2005 Service Pack 2 hinzugefügt neue Diagnosefunktionen für SQL Server 2005 Failovercluster Die Diagnose erfassen den Zustand der SQL Server 2005-Clusterressource automatisch, bevor der Cluster einen Failover durchführt. SQL Server 2005 Ressourcen dynamic Link Library (DLL) macht Datenerfassung dieser Diagnose erleichtern, wie folgt:
  • SQL Server 2005-Ressource startet eine Instanz des Dienstprogramms Sqlcmd.exe im Sicherheitskontext des Dienstkontos MSCS. Dann führt die SQL Server 2005-Ressource eine SQL-Skript über eine dedizierte administratorverbindung (DAC), die verschiedene dynamische Verwaltungsansichten (DMV)-Beispiele.
  • SQL Server 2005-Ressource erfasst eine Speicherabbilddatei des Prozesses SQL Server 2005 vor der Cluster einen Failover durchführt.
Da einige Diagnosedaten sammeln eine dedizierte administratorverbindung verwendet wird, muss das MSCS-Dienstkonto in der festen Serverrolle SYSADMIN bereitgestellt. Wenn die Sicherheitsmaßnahmen der Organisation bedeuten, dass MSCS-Dienstkonto in der festen Serverrolle SYSADMIN bereitgestellt werden kann, kann, eine SQL Server-Anmeldung, die nicht im SYSADMIN bereitgestellt festen Serverrolle MSCS-Dienstkonto erteilt. In diesem Szenario fehl Diagnose, die normalerweise vom Dienstprogramm Sqlcmd.exe erfasst werden, da das Dienstprogramm Sqlcmd.exe auf SQL Server 2005 anmelden kann. SQL Server 2005-Ressource DLL sollte eine Speicherabbilddatei unabhängig davon, ob das Dienstkonto von SQL Server 2005-Ressource, die DLL in SYSADMIN bereitgestellt Serverrolle festen sammeln.

Wenn Sie möchten, melden Sie sich bei SQL Server 2005 mit einem Konto, das Mitglied der festen Serverrolle SYSADMIN ist. Führen Sie die folgende SQL-Anweisung der festen Serverrolle SYSADMIN MSCS-Dienstkonto hinzufügen.
EXEC master.sp_addsrvrolemember @loginame = N'<Domain Name>\<MSCS Service Account> ', @rolename = N'sysadmin'

Dienstkonten ändern

Obwohl die vorherigen Schritte Administrator Betriebssystem Verbindung zu SQL Server 2005 erschweren können, erleichtern die vorherigen Schritte komplizierter Dienstkonten für SQL Server 2005 und SQL Server Agent ändern. Um die Dienstkonten für SQL Server 2005 und SQL Server Agent ändern, gehen Sie folgendermaßen vor:
  1. Fügen Sie das neue Dienstkonto bzw. die Dienstkonten Windows-Gruppe oder Gruppen, die für SQL Server und SQL Server Agent erstellt.
  2. Verwenden Sie ein Konto mit ALTER ANY LOGIN-Berechtigung auf einem SQL Server 2005 für neue Service-Konten anzumelden. Führen Sie hierzu die folgende SQL-Anweisung über das Konto die Berechtigung ALTER ANY LOGIN.
    CREATE LOGIN [<Domain Name>\<New SQL Server Service Account>] FROM WINDOWS WITH DEFAULT_DATABASE=[master]
    CREATE LOGIN [<Domain Name>\<New SQL Server Agent Service Account>] FROM WINDOWS WITH DEFAULT_DATABASE=[master]
  3. Verwenden Sie ein Konto in der festen Serverrolle SYSADMIN auszuführende SQL-Anweisung bereitgestellt wird.
    EXEC master..sp_addsrvrolemember @loginame = N’ <Domain Name>\<New SQL Server Service Account> ', @rolename = N'sysadmin'
    EXEC master..sp_addsrvrolemember @loginame = N’ <Domain Name>\<New SQL Server Agent Service Account> ', @rolename = N'sysadmin'
    Hinweis Diese Anweisung wird das Dienstkonto für SQL Server 2005 und SQL Server Agent-Dienstkonto der festen Serverrolle SYSADMIN hinzugefügt.
  4. Ändern Sie das Dienstkonto für den entsprechenden Dienst mithilfe der SQL Server-Konfigurations-Manager. Gehen Sie hierzu folgendermaßen vor:
    1. Klicken Sie in SQL Server Configuration Manager auf SQL Server 2005-Dienste.
    2. Klicken Sie, die Sie ändern möchten, und klicken Sie dann auf Eigenschaften.
    3. Klicken Sie auf die Registerkarte Anmelden , und geben Sie die Benutzerkontoinformationen, dass der Dienst verwenden soll.
    4. Wenn Sie die Informationen eingegeben haben, klicken Sie auf OK .
    Hinweis Wenn Sie das Dienstkonto ändern, fordert SQL Server Configuration Manager Sie den Dienst neu starten.
  5. Verwenden Sie ein Konto mit der Berechtigung ALTER ANY LOGIN Benutzernamen löschen, die das Dienstkonto für SQL Server 2005 und SQL Server Agent-Dienstkonto verwendet wurden. Führen Sie hierzu die folgende SQL-Anweisung.
    DROP LOGIN [<Domain Name>\<Old SQL Server Service Account>]
    DROP LOGIN [<Domain Name>\<Old SQL Server Agent Service Account>]
Hinweis Sie müssen keinen neuen Windows NT-Rechte oder Berechtigungen für die neue Dienstkonten gewähren, weil die neue Dienstkonten zu ihren jeweiligen Windows-Gruppen in Schritt 1 hinzugefügt.

Empfehlung zum Überwachen von Prozessen

Zu SQL Server gegen unerwünschte Zugriffe Systemadministratoren sollten auch die folgenden Prozesse überwacht werden:
  • Überwachen Sie starten und Beenden von Windows-basierten Server.
  • Überwachung startet und beendet den SQL Server 2005 und SQL Server Agent-Dienste.
  • Überwachen des Zugriffs auf Verzeichnisse in der SQL Server-die Datenbankdateien, Datendateien, Protokolldateien und Datenbank-Sicherungsdateien gespeichert werden.
  • Überwachen Sie das Dienstkonto für SQL Server 2005 und SQL Server Agent-Dienstkonto ändern.
  • Überwachen Sie Netzwerk-Benutzernamen und Computer Benutzernamen von SQL Server 2005-Dienstkonto, das SQL Server-Agent-Dienstkonto oder MSCS-Dienstkonto.

NT-Systemkontos

NT-Systemkontos wird auch eine SQL Server-Anmeldung erteilt. NT-Systemkontos ist in der festen Serverrolle SYSADMIN bereitgestellt. Dieses Konto löschen oder Entfernen aus der festen Serverrolle SYSADMIN. NTAUTHORITY\SYSTEM-Konto wird von Microsoft Update und Microsoft SMS verwendet, Servicepacks und Hotfixes für SQL Server 2005-Installation anwenden. NTAUTHORITY\SYSTEM Konto wird auch von der SQL Writer-Dienst verwendet.

Auch wenn SQL Server 2005 im Einzelbenutzermodus gestartet wird, kann alle Benutzer mit Mitgliedschaft in der Gruppe BUILTIN\Administrators auf SQL Server 2005 als SQL Server-Administrator verbinden. Der Benutzer können unabhängig davon, ob die Gruppe VORDEFINIERT\Administratoren eine serveranmeldung erteilt wurde, die in der festen Serverrolle SYSADMIN bereitgestellt. Dieses Verhalten ist entwurfsbedingt. Dies soll für Daten-Recovery-Szenarien verwendet werden.

Weitere Informationen zu bewährten Sicherheitsmethoden für SQL Server 2005 finden Sie im Thema "Security Considerations für ein SQL Server-Installation" in der Onlinedokumentation zu SQL Server 2005.

Referenzen


Weitere Informationen zu Sicherheitsaspekten für eine SQL Server-Installation finden Sie auf der folgenden Microsoft TechNet Web Site: