Teilen über


Erstellen einer Server- und Datenbanküberwachungsspezifikation

Gilt für: SQL Server

In diesem Artikel erfahren Sie, wie Sie ein Server-Audit und eine Datenbank-Audit-Spezifikation in SQL Server mithilfe von SQL Server Management Studio oder Transact-SQL erstellen.

Die Überwachung einer Instanz von SQL Server oder einer SQL Server-Datenbank umfasst die Verfolgung und Protokollierung von Ereignissen, die auf dem System auftreten. Das SQL Server Audit-Objekt erfasst eine einzelne Instanz von Aktionen oder Aktionsgruppen auf Server- oder Datenbankebene auf, die überwacht werden soll. Die Überwachung wird auf SQL Server-Instanzebene ausgeführt. Es können mehrere Überwachungen pro SQL Server-Instanz vorliegen. Das Objekt für die Überwachungsspezifikation auf Datenbankebene gehört ebenfalls zu einer Überwachung. Sie können eine Datenbank-Überwachungsspezifikation pro SQL Server-Datenbank und pro Überwachung erstellen. Weitere Informationen finden Sie unter SQL Server Audit (Datenbank-Engine).

Begrenzungen

Datenbank-Überwachungsspezifikationen sind nicht sicherungsfähige Objekte, die sich in einer gegebenen Datenbank befinden. Wenn eine Datenbanküberwachungsspezifikation erstellt wird, ist diese zunächst deaktiviert.

Wenn Sie in einer Benutzerdatenbank eine Datenbank-Überwachungsspezifikation erstellen oder ändern, sollten Sie keine Überwachungsaktionen für Serverbereichsobjekte wie Systemsichten einschließen. Wenn Sie Objekte mit Serverbereich einfügen, wird die Überwachung erstellt. Die Objekte mit Serverbereich sind jedoch nicht enthalten, und es wird kein Fehler zurückgegeben. Verwenden Sie eine Datenbanküberwachungsspezifikation in der master-Datenbank, um Objekte mit Serverbereich zu überwachen.

Die Datenbanküberwachungsspezifikationen befinden sich in der Datenbank, in der sie erstellt werden, mit Ausnahme der tempdb-Systemdatenbank.

Berechtigungen

  • Benutzer mit der ALTER ANY DATABASE AUDIT-Berechtigung können Datenbanküberwachungsspezifikationen erstellen und sie an eine beliebige Überwachung binden.

  • Nachdem eine Datenbanküberwachungsspezifikation erstellt wurde, können Prinzipale mit CONTROL SERVER- oder ALTER ANY DATABASE AUDIT-Berechtigungen diese anzeigen. Das sysadmin-Konto kann sie ebenfalls anzeigen.

Verwenden von SQL Server Management Studio

Erstellen einer Serverüberwachung

  1. Erweitern Sie im Objekt-Explorer den Ordner Sicherheit .

  2. Klicken Sie mit der rechten Maustaste auf den Ordner Überwachungen, und wählen Sie dann Neue Überwachung aus. Weitere Informationen finden Sie unter Erstellen einer Serverüberwachung und einer Serverüberwachungsspezifikation.

  3. Klicken Sie auf OK, wenn Sie die Auswahl der Optionen abgeschlossen haben.

Erstellen einer Überwachungsspezifikation auf Datenbankebene

  1. Erweitern Sie im Objekt-Explorer die Datenbank, in der Sie eine Überwachungsspezifikation erstellen möchten.

  2. Erweitern Sie den Ordner Sicherheit .

  3. Klicken Sie mit der rechten Maustaste auf den Ordner Datenbank-Überwachungsspezifikationen und dann auf Neue Datenbank-Überwachungsspezifikation....

    Die folgenden Optionen sind im Dialogfeld Datenbank-Überwachungsspezifikation erstellen verfügbar:

    Name

    Der Name der Datenbank-Überwachungsspezifikation. Es wird automatisch ein Name generiert, wenn Sie eine Serverüberwachungsspezifikation erstellen. Der Name kann geändert werden.

    Überwachung

    Der Name eines vorhandenen Serverüberwachungsobjekts. Geben Sie den Namen der Überwachung ein, oder wählen Sie ihn aus der Liste aus.

    Überwachungsaktionstyp

    Gibt die aufzuzeichnenden Überwachungsaktionsgruppen auf Datenbankebene und Überwachungsaktionen an. Eine Liste der Überwachungsaktionsgruppen auf Datenbankebene und Überwachungsaktionen sowie eine Beschreibung der darin enthaltenen Ereignisse finden Sie unter SQL Server Audit-Aktionsgruppen und -Aktionen.

    Objektschema

    Zeigt das Schema für den angegebenen Objektnamenan.

    Objektnamen

    Der Name des zu überwachenden Objekts. Diese Option ist nur für Überwachungsaktionen verfügbar. Sie gilt nicht für Überwachungsgruppen.

    Auslassungspunkte (…)

    Öffnen Sie das Dialogfeld Objekte auswählen, damit Sie anhand des festgelegten Überwachungsaktionstyps nach einem verfügbaren Objekt suchen und dieses auswählen können.

    Prinzipalname

    Das Konto, anhand dessen die Überwachung für das zu überwachende Objekt gefiltert wird.

    Auslassungspunkte (…)

    Öffnen Sie das Dialogfeld Objekte auswählen, damit Sie anhand des festgelegten Objektnamens nach einem verfügbaren Objekt suchen und dieses auswählen können.

  4. Klicken Sie auf OK, wenn Sie die Auswahl der Optionen abgeschlossen haben.

Verwenden von Transact-SQL

Erstellen einer Serverüberwachung

  1. Stellen Sie im Objekt-Explorer eine Verbindung mit einer Datenbank-Engine-Instanz her.

  2. Klicken Sie in der Standardleiste auf Neue Abfrage.

  3. Fügen Sie das folgende Beispiel in das Abfragefenster ein, und klicken Sie dann auf Ausführen.

    USE master;
    GO
    
    -- Create the server audit.
    CREATE SERVER AUDIT Payroll_Security_Audit TO FILE (FILEPATH = 'C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\DATA');
    GO
    
    -- Enable the server audit.
    ALTER SERVER AUDIT Payroll_Security_Audit
    WITH (STATE = ON);
    

Erstellen einer Überwachungsspezifikation auf Datenbankebene

  1. Stellen Sie im Objekt-Explorer eine Verbindung mit einer Datenbank-Engine-Instanz her.

  2. Klicken Sie in der Standardleiste auf Neue Abfrage.

  3. Fügen Sie das folgende Beispiel in das Abfragefenster ein, und klicken Sie dann auf Ausführen. In diesem Beispiel wird eine Datenbanküberwachungsspezifikation namens Audit_Pay_Tables erstellt. Sie überwacht die SELECT- und INSERT-Anweisungen des Benutzers dbo für die Tabelle HumanResources.EmployeePayHistory anhand der Serverüberwachung, die im vorherigen Abschnitt definiert wurde.

    USE AdventureWorks2022;
    GO
    
    -- Create the database audit specification.
    CREATE DATABASE AUDIT SPECIFICATION Audit_Pay_Tables
    FOR SERVER AUDIT Payroll_Security_Audit ADD (
        SELECT, INSERT ON HumanResources.EmployeePayHistory BY dbo
    )
    WITH (STATE = ON);
    GO