Es ist wichtig, eine sichere Umgebung zu haben und das Prinzip der geringsten Privilegien in Ihren Servern und Datenbanken durchzusetzen, aber dies kann in großen Umgebungen schwierig zu erreichen sein, wo viele Personen erhöhte Privilegien haben oder mehrere Personen die Berechtigung haben, Aufgaben über Ihre Daten oder Ihr Schema auszuführen.
Als zusätzliche Maßnahme sollte ein Audit-Protokoll in diesen Szenarien implementiert werden und diese häufig überprüft werden.
SQL Server bietet die Funktionalität, Audit-Protokolle auf Server- und Datenbankebene zu implementieren. Ab SQL Server 2008 unterstützen alle SQL Server-Editionen Audits auf Serverebene. Datenbank-Audits werden ab SQL Server 2016 (13.x) SP1 unterstützt. Davor war das Auditing auf Datenbankebene auf die Editionen Enterprise, Developer und Evaluation beschränkt.
In diesem Beitrag zeige ich Ihnen, wie Sie Audit-Protokolle konfigurieren und anzeigen können:
Audit-Protokoll einrichten
Gehen Sie unter Sicherheit zu Audits und wählen Sie Neues Audit…
Legen Sie einen Namen für das Audit fest und wählen Sie ein Audit-Ziel aus (ich persönlich bevorzuge einen Dateispeicherort).
Wählen Sie die gewünschten Parameter und klicken Sie auf OK.
Das Audit ist nun erstellt, damit es funktioniert, aktivieren Sie einfach das Audit.
HINWEIS: Bevor Sie Änderungen an der Audit-Konfiguration vornehmen, müssen Sie es zunächst deaktivieren.
Audit auf Serverebene implementieren
Wir haben unseren Audit-Speicherort erstellt, nun werden wir fortfahren, die Aktionen zu erstellen, die wir auf Serverebene auditieren wollen.
Unter dem Ordner „Sicherheit“, suchen Sie die Server-Audit-Spezifikationen, klicken Sie mit der rechten Maustaste und wählen Sie „Neue Server-Audit-Spezifikation“…
Im nächsten Fenster geben Sie einen Namen für die Prüfung an (Sie können mehr als einen haben) und wählen die im vorherigen Schritt erstellte Prüfung aus.
Wählen Sie die zu prüfende Aktion oder Aktionen aus. Um zu überprüfen, was in den einzelnen Aktionen enthalten ist, lesen Sie bitte hier in der Microsoft-Dokumentation nach.
Klicken Sie anschließend auf OK, um die Audit-Spezifikation zu erstellen.
Für dieses Beispiel habe ich nur die zu überprüfende DBCC-Aktion ausgewählt (wie wir später in diesem Beitrag sehen werden)
Die Audit-Spezifikation wird auch deaktiviert erstellt, damit sie funktioniert, aktivieren Sie sie wie in der Abbildung gezeigt.
Hinweis: Bevor Sie Änderungen an der Audit-Spezifikation vornehmen, müssen Sie diese zunächst deaktivieren.
Implementieren Sie eine Audit-Spezifikation auf Datenbankebene
Der Prozess ist relativ gleich, um eine Audit-Spezifikation auf Datenbankebene zu erstellen, der Hauptunterschied besteht darin, dass sich die Option unter dem Ordner „Sicherheit“ für jede Datenbank befindet.
Klicken Sie mit der rechten Maustaste auf den Ordner „Datenbank-Audit-Spezifikation“ und dann auf „Neue Datenbank-Audit-Spezifikation“…
Wählen Sie den Namen des Datenbank-Audits und das Audit-Ziel (dasselbe, das im ersten Schritt für dieses Beispiel erstellt wurde).
Ein weiterer wichtiger Unterschied bei Datenbank-Audits besteht darin, dass wir das Objekt oder Schema auswählen müssen, das wir überprüfen möchten.
Wählen Sie die zu überprüfenden Aktionen aus (eine Beschreibung der einzelnen Aktionen finden Sie hier), und klicken Sie dann auf „Ok“.
In diesem Beispiel werde ich den SELECT-Befehl über die Tabelle „Kurs“ in einer Beispieldatenbank „Schule“ überprüfen.
Nach der Erstellung der Audit-Spezifikation müssen Sie diese zur Ausführung aktivieren.
HINWEIS: Bevor Sie Änderungen an der Audit-Konfiguration vornehmen, müssen Sie diese zunächst deaktivieren.
Überprüfung der Audit-Protokolle
Die Konfiguration und Ausführung der Audits ist nur die halbe Arbeit, sie ist nichts wert, wenn Sie die Protokolle nicht häufig proaktiv überprüfen.
Es gibt 2 Möglichkeiten, die Protokolle zu überprüfen, mit SSMS und T-SQL
Für dieses Beispiel habe ich einige Sätze ausgeführt, um die oben konfigurierten Server- und Datenbank-Audits auszulösen, damit wir einige Daten sehen können.
SSMS
Um die Ereignisprotokolle mit Management Studio zu überprüfen, wählen Sie einfach das erstellte Audit aus, klicken Sie mit der rechten Maustaste darauf und wählen Sie die Option Auditprotokolle anzeigen
Das Auditprotokoll wird in einer Art SQL Server-Protokoll angezeigt, und Sie können einige der Beispiele sehen, die ich ausgelöst habe
T-SQL
Für die Verwendung dieser Option verwenden Sie die DMF sys.fn_get_audit_file, wobei Sie den Speicherort der Datei angeben und für den Dateinamen *.sqlaudit verwenden, um alle Dateien einzuschließen.
Dies ist die Abfrage, die ich für dieses Beispiel verwende:
SELECT event_time,action_id,statement,database_name,server_principal_name
FROM sys.fn_get_audit_file ('C:\temp\TestAudit_*.sqlaudit',default,default);
Die Ausgabe der Abfrage sieht wie folgt aus:
Ich habe die Aktionen, die in der Datenbankspezifikation erfasst wurden, gelb markiert.
Mit diesen Informationen können Sie Ihre eigenen Audits für Ihre missionskritischen Server konfigurieren und sie häufig überprüfen, außerdem könnten Sie eine Warnmeldung oder eine automatische Berichtslogik implementieren, um bei verdächtigen Aktivitäten benachrichtigt zu werden.