Freigeben über


SQL Server Audit (Datenbank-Engine)

Das Überwachen einer Instanz des SQL Server-Datenbankmoduls oder einer einzelnen Datenbank umfasst das Nachverfolgen und Protokollieren von Ereignissen, die im Datenbankmodul auftreten. Mithilfe von SQL Server Audit können Serverüberwachungen erstellt werden, die Serverüberwachungsspezifikationen für Ereignisse auf Serverebene sowie Datenbank-Überwachungsspezifikationen für Ereignisse auf Datenbankebene beinhalten können. Überwachte Ereignisse können in die Ereignisprotokolle oder Überwachungsdateien geschrieben werden.

Es gibt mehrere Ebenen der Überwachung für SQL Server, je nach Behördlichen oder Standardanforderungen für Ihre Installation. DIE SQL Server-Überwachung stellt die Tools und Prozesse bereit, die Sie zum Aktivieren, Speichern und Anzeigen von Audits auf verschiedenen Server- und Datenbankobjekten benötigen.

Sie können Serverüberwachungsaktionsgruppen pro Instanz und entweder Datenbanküberwachungsaktionsgruppen oder Datenbanküberwachungsaktionen pro Datenbank aufzeichnen. Das Überwachungsereignis tritt jedes Mal auf, wenn die überprüfbare Aktion auftritt.

Alle Editionen von SQL Server unterstützen Audits auf Serverebene. Die Überwachung auf Datenbankebene ist auf Enterprise-, Entwickler- und Evaluierungseditionen beschränkt. Weitere Informationen finden Sie unter Features Supported by the Editions of SQL Server 2014.

SQL Server-Überwachungskomponenten

Eine Überwachung ist die Kombination mehrerer Elemente in einem einzelnen Paket für eine bestimmte Gruppe von Serveraktionen oder Datenbankaktionen. Die Komponenten der SQL Server-Überwachung kombinieren eine Ausgabe, die als Überwachung bezeichnet wird, ebenso wie eine Berichtsdefinition in Kombination mit Grafiken und Datenelementen einen Bericht erzeugt.

Die SQL Server-Überwachung verwendet Extended Events, um ein Audit zu erstellen. Weitere Informationen zu erweiterten Ereignissen finden Sie unter erweiterte Ereignisse.

SQL Server-Überwachung

Das SQL Server-Überwachungsobjekt sammelt eine einzelne Instanz von Aktionen auf Server- oder Datenbankebene und Gruppen von Aktionen, die überwacht werden sollen. Die Überwachung befindet sich auf SQL Server-Instanzebene. Sie können über mehrere Audits pro SQL Server-Instanz verfügen.

Wenn Sie eine Überwachung definieren, geben Sie den Speicherort für die Ausgabe der Ergebnisse an. Dies ist das Auditierungsziel. Die Überwachung wird in einem deaktivierten Zustand erstellt und überwacht keine Aktionen automatisch. Nachdem die Überwachung aktiviert wurde, empfängt das Überwachungsziel Daten aus der Überwachung.

Serverüberwachungsspezifikation

Das ServerÜberwachungsspezifikationsobjekt gehört zu einer Überwachung. Sie können eine Serverüberwachungsspezifikation pro Überwachung erstellen, da beide im SQL Server-Instanzbereich erstellt werden.

Die Serverüberwachungsspezifikation sammelt viele Aktionsgruppen auf Serverebene, die vom Feature "Erweiterte Ereignisse" ausgelöst werden. Sie können Überwachungsaktionsgruppen in eine Serverüberwachungsspezifikation einschließen. Überwachungsaktionsgruppen sind vordefinierte Aktionsgruppen, bei denen es sich um atome Ereignisse handelt, die im Datenbankmodul auftreten. Diese Aktionen werden an die Überwachung gesendet, die sie im Ziel erfasst.

Überwachungsaktionsgruppen auf Serverebene werden im Thema SQL Server-Überwachungsaktionsgruppen und -Aktionen beschrieben.

Datenbanküberwachungsspezifikation

Das Datenbanküberwachungsspezifikationsobjekt gehört auch zu einer SQL Server-Überwachung. Sie können eine Datenbanküberwachungsspezifikation pro SQL Server-Datenbank pro Überwachung erstellen.

Die Datenbanküberwachungsspezifikation sammelt Überwachungsaktionen auf Datenbankebene, die vom Feature "Erweiterte Ereignisse" ausgelöst werden. Sie können einer Datenbanküberwachungsspezifikation entweder Überwachungsaktionsgruppen oder Überwachungsereignisse hinzufügen. Überwachungsereignisse sind die atomen Aktionen, die vom SQL Server-Modul überwacht werden können. Überwachungsaktionsgruppen sind vordefinierte Aktionsgruppen . Beide befinden sich im SQL Server-Datenbankbereich. Diese Aktionen werden an die Überwachung gesendet, die sie im Ziel erfasst. Schließen Sie keine serverbezogenen Objekte, z. B. die Systemansichten, in eine Benutzerdatenbanküberwachungsspezifikation ein.

Überwachungsaktionsgruppen und Überwachungsaktionen auf Datenbankebene werden im Thema SQL Server-Überwachungsaktionsgruppen und -aktionen beschrieben.

Ziel

Die Ergebnisse einer Überwachung werden an ein Ziel gesendet, das eine Datei, das Windows-Sicherheitsereignisprotokoll oder das Ereignisprotokoll der Windows-Anwendung sein kann. Protokolle müssen regelmäßig überprüft und archiviert werden, um sicherzustellen, dass das Ziel über ausreichend Speicherplatz zum Schreiben zusätzlicher Datensätze verfügt.

Von Bedeutung

Jeder authentifizierte Benutzer kann das Ereignisprotokoll der Windows-Anwendung lesen und schreiben. Das Anwendungsereignisprotokoll erfordert niedrigere Berechtigungen als das Windows Security-Ereignisprotokoll und ist weniger sicher als das Windows-Sicherheitsereignisprotokoll.

Zum Schreiben in das Windows-Sicherheitsprotokoll muss das SQL Server-Dienstkonto zur Richtlinie "Sicherheitsüberwachung generieren" hinzugefügt werden. Standardmäßig sind das lokale System, der lokale Dienst und der Netzwerkdienst Teil dieser Richtlinie. Diese Einstellung kann mithilfe des Sicherheitsrichtlinien-Snap-Ins (secpol.msc) konfiguriert werden. Darüber hinaus muss die Sicherheitsrichtlinie für den Überwachungsobjektzugriff sowohl für Erfolg als auch für Fehler aktiviert sein. Diese Einstellung kann mithilfe des Sicherheitsrichtlinien-Snap-Ins (secpol.msc) konfiguriert werden. In Windows Vista oder Windows Server 2008 können Sie mithilfe des Überwachungsrichtlinienprogramms (AuditPol.exe)) die differenziertere, von der Anwendung generierte Richtlinie über die Befehlszeile festlegen. Weitere Informationen zu den Schritten zum Schreiben in das Windows-Sicherheitsprotokoll finden Sie unter Schreiben von SQL Server-Überwachungsereignissen in das Sicherheitsprotokoll. Weitere Informationen zum Auditpol.exe-Programm finden Sie im Knowledge Base-Artikel 921469, Verwenden von Gruppenrichtlinien zum Konfigurieren detaillierter Sicherheitsüberwachungen. Die Windows-Ereignisprotokolle sind global für das Windows-Betriebssystem. Weitere Informationen zu den Windows-Ereignisprotokollen finden Sie unter "Übersicht über die Ereignisanzeige". Wenn Sie genauere Berechtigungen für die Überwachung benötigen, verwenden Sie das Binärdateiziel.

Wenn Sie Überwachungsinformationen in einer Datei speichern, um Manipulationen zu verhindern, können Sie den Zugriff auf den Dateispeicherort wie folgt einschränken:

  • Das SQL Server-Dienstkonto muss über die Berechtigung "Lesen" und "Schreiben" verfügen.

  • Überwachungsadministratoren erfordern in der Regel Lese- und Schreibberechtigungen. Dabei wird davon ausgegangen, dass die Überwachungsadministratoren Windows-Konten für die Verwaltung von Überwachungsdateien sind, z. B. das Kopieren in verschiedene Freigaben, sichern sie usw.

  • Überwachungsleseprogramme, die zum Lesen von Überwachungsdateien autorisiert sind, müssen Lesen-Berechtigung haben.

Selbst wenn das Datenbankmodul in eine Datei schreibt, können andere Windows-Benutzer die Überwachungsdatei lesen, wenn sie über die Berechtigung verfügen. Das Datenbankmodul verwendet keine exklusive Sperre, die Lesevorgänge verhindert.

Da das Datenbankmodul auf die Datei zugreifen kann, kann SQL Server-Anmeldungen mit CONTROL SERVER-Berechtigung das Datenbankmodul verwenden, um auf die Überwachungsdateien zuzugreifen. Um jeden Benutzer aufzuzeichnen, der die Überwachungsdatei liest, definieren Sie eine Überwachung für master.sys.fn_get_audit_file. Dadurch werden die Anmeldungen mit CONTROL SERVER-Berechtigungen aufgezeichnet, die über SQL Server auf die Überwachungsdatei zugegriffen haben.

Wenn ein Überwachungsadministrator die Datei an einen anderen Speicherort kopiert (für Archivzwecke usw.), sollten die ACLs am neuen Speicherort auf die folgenden Berechtigungen reduziert werden:

  • Überwachungsadministrator - Lese-/Schreibzugriff

  • Prüfungsleser - Lesen

Es wird empfohlen, Überwachungsberichte aus einer separaten Instanz von SQL Server zu generieren, z. B. eine Instanz von SQL Server Express, auf die nur Überwachungsadministratoren oder Überwachungsleser Zugriff haben. Mithilfe einer separaten Instanz des Datenbankmoduls für die Berichterstellung können Sie verhindern, dass nicht autorisierte Benutzer Zugriff auf den Überwachungsdatensatz erhalten.

Sie können zusätzlichen Schutz vor unbefugtem Zugriff bieten, indem Sie den Ordner verschlüsseln, in dem die Überwachungsdatei mithilfe der Windows BitLocker-Laufwerkverschlüsselung oder des Windows-Verschlüsselungsdateisystems gespeichert wird.

Weitere Informationen zu den Überwachungsdatensätzen, die in das Ziel geschrieben wurden, finden Sie unter SQL Server-Überwachungsdatensätze.

Übersicht über die Verwendung der SQL Server-Überwachung

Sie können SQL Server Management Studio oder Transact-SQL verwenden, um eine Überwachung zu definieren. Nachdem die Überwachung erstellt und aktiviert wurde, empfängt das Ziel die Einträge.

Sie können die Windows-Ereignisprotokolle mithilfe des Dienstprogramms "Ereignisanzeige " in Windows lesen. Für Dateiziele können Sie entweder den Protokolldatei-Viewer in SQL Server Management Studio oder die fn_get_audit_file-Funktion verwenden, um die Zieldatei zu lesen.

Der allgemeine Prozess zum Erstellen und Verwenden einer Überwachung lautet wie folgt.

  1. Erstellen Sie eine Überwachung, und definieren Sie das Ziel.

  2. Erstellen Sie entweder eine Serverüberwachungsspezifikation oder Datenbanküberwachungsspezifikation, die der Überwachung zugeordnet ist. Aktivieren Sie die Überwachungsspezifikation.

  3. Aktivieren Sie die Überwachung.

  4. Lesen Sie die Überwachungsereignisse mithilfe der Windows-Ereignisanzeige, der Protokolldateiansichtr oder der fn_get_audit_file-Funktion.

Weitere Informationen finden Sie unter Erstellen einer Serverüberwachungs- und Serverüberwachungsspezifikation und erstellen einer Serverüberwachungs- und Datenbanküberwachungsspezifikation.

Überlegungen

Im Falle eines Fehlers während der Audit-Initialisierung startet der Server nicht. In diesem Fall kann der Server mithilfe der Option "-f " in der Befehlszeile gestartet werden.

Wenn ein Überwachungsfehler bewirkt, dass der Server heruntergefahren wird oder nicht gestartet wird, da ON_FAILURE=SHUTDOWN für die Überwachung angegeben ist, wird das MSG_AUDIT_FORCED_SHUTDOWN-Ereignis in das Protokoll geschrieben. Da das Herunterfahren bei der ersten Aktivierung dieser Einstellung auftritt, wird der Protokolleintrag einmal geschrieben. Dieses Ereignis wird nach der Fehlernachricht für das Audit geschrieben, das das Herunterfahren verursacht. Ein Administrator kann überwachungsinduzierte Herunterfahren umgehen, indem SQL Server im Einzelbenutzermodus mithilfe des Flags "-m " gestartet wird. Wenn Sie im Einzelbenutzermodus starten, wird jede Überprüfung, bei der ON_FAILURE=SHUTDOWN angegeben ist, herabgestuft, sodass sie in dieser Sitzung mit ON_FAILURE=CONTINUE ausgeführt wird. Wenn SQL Server mit dem Flag "-m" gestartet wird, wird die MSG_AUDIT_SHUTDOWN_BYPASSED-Meldung in das Fehlerprotokoll geschrieben.

Weitere Informationen zu Dienststartoptionen finden Sie unter Startoptionen für den Datenbankmoduldienst.

Anfügen einer Datenbank mit einem definierten Audit

Das Anfügen einer Datenbank, die eine Audit-Spezifikation enthält und eine GUID angibt, die nicht auf dem Server vorhanden ist, führt zu einer verwaisten Audit-Spezifikation. Da eine Überwachung mit einer übereinstimmenden GUID in der Serverinstanz nicht vorhanden ist, werden keine Überwachungsereignisse aufgezeichnet. Um diese Situation zu beheben, verwenden Sie den BEFEHL ALTER DATABASE AUDIT SPECIFICATION, um die verwaiste Überwachungsspezifikation mit einer vorhandenen Serverüberwachung zu verbinden. Oder verwenden Sie den Befehl CREATE SERVER AUDIT, um ein neues Server-Audit mit der angegebenen GUID zu erstellen.

Sie können eine Datenbank anfügen, in der eine Audit-Spezifikation definiert ist, an eine andere Edition von SQL Server, die die SQL Server-Überwachung nicht unterstützt, wie z. B. SQL Server Express, aber damit werden keine Überwachungsereignisse aufgezeichnet.

Datenbankspiegelung und SQL Server-Überwachung

Eine Datenbank mit definierter Datenbanküberwachungsspezifikation und die Datenbankspiegelung verwendet, enthält die Datenbanküberwachungsspezifikation. Damit die gespiegelte SQL-Instanz ordnungsgemäß funktioniert, müssen die folgenden Elemente konfiguriert werden:

  • Der Spiegelserver muss über ein Audit mit derselben GUID verfügen, um die Spezifikation der Datenbankprüfung zu aktivieren und Prüfungsprotokolle zu schreiben. Dies kann mithilfe des Befehls CREATE AUDIT WITH GUID GUID=<aus der Quellserverüberwachung> konfiguriert werden.

  • Für Binäre Dateiziele muss das Spiegelserverdienstkonto über entsprechende Berechtigungen für den Speicherort verfügen, an dem der Überwachungspfad geschrieben wird.

  • Für Windows-Ereignisprotokollziele muss die Sicherheitsrichtlinie auf dem Computer, auf dem sich der Spiegelserver befindet, den Dienstkontozugriff auf das Sicherheits- oder Anwendungsereignisprotokoll zulassen.

Administratorenprüfung

Mitglieder der sysadmin festen Serverrolle werden als dbo-Benutzer in jeder Datenbank identifiziert. Um Aktionen der Administratoren zu überwachen, überwachen Sie die Aktionen des dbo-Benutzers .

Erstellen und Verwalten von Audits mit Transact-SQL

Sie können DDL-Anweisungen, dynamische Verwaltungsansichten und -funktionen sowie Katalogansichten verwenden, um alle Aspekte der SQL Server-Überwachung zu implementieren.

Data Definition Language-Anweisungen

Mit den folgenden DDL-Anweisungen können Sie Überwachungsspezifikationen erstellen, ändern und ablegen:

ALTER AUTHORIZATION SERVERÜBERWACHUNG ERSTELLEN
ALTER DATABASE AUDIT SPECIFICATION ERSTELLEN DER SERVERÜBERWACHUNGSSPEZIFIKATION
ALTER SERVER-ÜBERWACHUNG DROP DATABASE AUDIT SPECIFICATION
ALTER SERVER AUDIT-SPEZIFIKATION DROP SERVER-ÜBERWACHUNG
DATENBANKÜBERWACHUNGSSPEZIFIKATION ERSTELLEN DROP SERVER-ÜBERWACHUNGSSPEZIFIKATION

Dynamische Ansichten und Funktionen

In der folgenden Tabelle sind die dynamischen Ansichten und Funktionen aufgeführt, die Sie für die SQL Server-Überwachung verwenden können.

Dynamische Ansichten und Funktionen BESCHREIBUNG
sys.dm_audit_actions Gibt eine Zeile für jede Überwachungsaktion zurück, die im Überwachungsprotokoll gemeldet werden kann, und jede Überwachungsaktionsgruppe, die als Teil der SQL Server-Überwachung konfiguriert werden kann.
sys.dm_server_audit_status Stellt Informationen zum aktuellen Status der Überwachung bereit.
sys.dm_audit_class_type_map Gibt eine Tabelle zurück, die das feld class_type im Überwachungsprotokoll dem feld class_desc in sys.dm_audit_actions zuordnet.
fn_get_audit_file Gibt Informationen aus einer von einer Serverprüfung erstellten Audit-Datei zurück.

Katalogansichten

In der folgenden Tabelle sind die Katalogansichten aufgeführt, die Sie für die SQL Server-Überwachung verwenden können.

Katalogansichten BESCHREIBUNG
sys.database_ audit_specifications Enthält Informationen zu den Datenbanküberwachungsspezifikationen in einer SQL Server-Überwachung auf einer Serverinstanz.
sys.database_audit_specification_details Enthält Informationen zu den Datenbanküberwachungsspezifikationen in einer SQL Server-Überwachung auf einer Serverinstanz für alle Datenbanken.
sys.server_audits Enthält eine Zeile für jede SQL Server-Überwachung in einer Serverinstanz.
sys.server_audit_specifications Enthält Informationen zu den Serverüberwachungsspezifikationen in einer SQL Server-Überwachung auf einer Serverinstanz.
sys.server_audit_specifications_details Enthält Informationen zur Serverüberwachungsspezifikation (Aktionen) in einer SQL Server-Überwachung auf einer Serverinstanz.
sys.server_file_audits Enthält detaillierte Informationen über den Dateiüberwachungstyp im SQL Server-Audit auf einer Serverinstanz.

Erlaubnisse

Jedes Feature und jeder Befehl für die SQL Server-Überwachung verfügt über individuelle Berechtigungsanforderungen.

Zum Erstellen, Ändern oder Löschen eines Server-Audits oder einer Server-Audit-Spezifikation benötigen Serverprinzipale die Berechtigung ALTER ANY SERVER AUDIT oder CONTROL SERVER. Zum Erstellen, Ändern oder Ablegen einer Datenbanküberwachungsspezifikation benötigen Datenbankprinzipale die ALTER ANY DATABASE AUDIT-Berechtigung oder die ALTER- oder CONTROL-Berechtigung für die Datenbank. Darüber hinaus müssen Prinzipale über die Berechtigung zum Herstellen einer Verbindung mit der Datenbank oder ALTER ANY SERVER AUDIT- oder CONTROL SERVER-Berechtigungen verfügen.

Sofern nicht anders angegeben, erfordert das Anzeigen von Katalogansichten, dass ein Benutzer eines der folgenden besitzt:

  • Mitgliedschaft in der festen Serverrolle "sysadmin".

  • Die CONTROL SERVER-Berechtigung.

  • Die VIEW SERVER STATE-Berechtigung.

  • Die ALTER ANY AUDIT-Berechtigung.

  • Die Berechtigung "Überwachungsstatus anzeigen" (gewährt nur dem Prinzipal Zugriff auf die Katalogansicht sys.server_audits).

Ein Benutzer muss über die Berechtigung VIEW SERVER STATE oder ALTER ANY AUDIT verfügen, um die dynamischen Verwaltungsansichten zu verwenden.

Weitere Informationen zum Erteilen von Rechten und Berechtigungen finden Sie unter GRANT (Transact-SQL).

Vorsicht

Benutzer in der Sysadmin-Rolle können jede Auditkomponente manipulieren, und Benutzer in der Rolle db_owner können Revisionsspezifikationen in einer Datenbank manipulieren. Der SQL Server-Audit überprüft, ob eine Anmeldung, die eine Audit-Spezifikation erstellt oder ändert, mindestens über die Berechtigung "ALTER ANY DATABASE AUDIT" verfügt. Beim Anfügen einer Datenbank wird jedoch keine Überprüfung erfolgt. Sie sollten davon ausgehen, dass alle Datenbanküberwachungsspezifikationen nur so vertrauenswürdig sind wie die Principale in der Rolle des Systems-Administrator oder des DB-Eigentümers.

Erstellen einer Serverüberwachung und einer Serverüberwachungsspezifikation

Erstellen einer Serverüberwachungs- und Datenbanküberwachungsspezifikation

Anzeigen eines SQL Server-Überwachungsprotokolls

Schreiben von SQL-Serverüberwachungsereignissen in das Sicherheitsprotokoll

Servereigenschaften (Sicherheitsseite)
Erläutert, wie Sie die Anmeldeüberwachung für SQL Server aktivieren. Die Überwachungsdatensätze werden im Windows-Anwendungsprotokoll gespeichert.

C2-Überwachungsmodus Serverkonfigurationsoption
Erläutert den C2-Sicherheits-Compliance-Überwachungsmodus in SQL Server.

Sicherheitsüberwachungsereigniskategorie (SQL Server Profiler)
Erläutert die Überwachungsereignisse, die Sie in SQL Server Profiler verwenden können. Weitere Informationen finden Sie unter SQL Server Profiler.

SQL-Ablaufverfolgung
Erläutert, wie SQL Trace innerhalb Ihrer eigenen Anwendungen verwendet werden kann, um Traces manuell zu erstellen, anstatt SQL Server Profiler zu verwenden.

DDL-Trigger
Erläutert, wie Sie DDL-Auslöser (Datendefinitionssprache, DDL) verwenden können, um Änderungen Ihrer Datenbanken nachzuverfolgen.

Microsoft TechNet: SQL Server TechCenter: SQL Server 2005 Security and Protection
Stellt up-to-datumsinformationen zur SQL Server-Sicherheit bereit.

Siehe auch

SQL Server-Überwachungsaktionsgruppen und -aktionen
SQL Server-Überwachungsdatensätze