SQL Server Audit-Datensätze

Das Feature SQL Server Audit ermöglicht es Ihnen, auf Serverebene und auf Datenbankebene Ereignisgruppen und Ereignisse zu überwachen. Weitere Informationen finden Sie unter Grundlegendes zu SQL Server Audit. SQL Server.

Überwachungen bestehen aus null oder mehr Überwachungsaktionselementen, die in einem Überwachungsziel aufgezeichnet werden. Beim Überwachungsziel kann es sich um eine Binärdatei, das Windows-Sicherheitsereignisprotokoll oder das Windows-Anwendungsereignisprotokoll handeln. Die an das Ziel gesendeten Datensätze können die in der folgenden Tabelle beschriebenen Elemente enthalten.

Spaltenname

Beschreibung

Typ

Immer verfügbar

event_time

Datum und Uhrzeit der Auslösung des überwachbaren Vorgangs.

datetime2

Ja

sequence_no

Hält die Reihenfolge der Datensätze innerhalb eines einzelnen Überwachungsdatensatzes fest, der zu groß für den Schreibpuffer für Überwachungen ist.

int

Ja

action_id

ID der Aktion

char(4)

Ja

succeeded

Gibt an, ob die Aktion, die das Ereignis ausgelöst hat, erfolgreich war.

bit – 1 = Erfolg, 0 = Fehler

Ja

permission_bitmask

Zeigt, sofern anwendbar, die Berechtigungen an, die gewährt, verweigert oder widerrufen wurden.

bigint

Nein

is_column_permission

Flag, das eine Berechtigung auf Spaltenebene angibt.

bit – 1 = True, 0 = False

Nein

session_id

ID der Sitzung, bei der das Ereignis aufgetreten ist.

int

Ja

server_principal_id

ID des Anmeldekontexts, in dem die Aktion ausgeführt wird.

int

Ja

database_principal_id

ID des Datenbankbenutzerkontexts, in dem die Aktion ausgeführt wird.

int

Nein

object_id

Die primäre ID der Entität, bei der die Überwachung aufgetreten ist. Dies schließt Folgendes ein:

  • Serverobjekte

  • Datenbanken

  • Datenbankobjekte

  • Schemaobjekte

int

Nein

target_server_principal_id

Serverprinzipal, für den die überwachbare Aktion gilt.

int

Ja

target_database_principal_id

Datenbankprinzipal, für den die überwachbare Aktion gilt.

int

Nein

class_type

Typ der überwachbaren Entität, bei der die Überwachung auftritt.

char(2)

Ja

session_server_principal_name

Serverprinzipal für die Sitzung.

sysname

Ja

server_principal_name

Aktuelle Anmeldung.

sysname

Ja

server_principal_sid

Aktuelle Anmeldungs-SID.

varbinary

Ja

database_principal_name

Aktueller Benutzer.

sysname

Nein

target_server_principal_name

Zielanmeldung der Aktion.

sysname

Nein

target_server_principal_sid

SID der Zielanmeldung.

varbinary

Nein

target_database_principal_name

Zielbenutzer der Aktion.

sysname

Nein

server_instance_name

Der Name der Serverinstanz, in der die Überwachung aufgetreten ist. Verwendet das standardmäßige machine\instance-Format.

nvarchar(120)

Ja

database_name

Der Datenbankkontext, in dem die Aktion aufgetreten ist.

sysname

No

schema_name

Der Schemakontext, in dem die Aktion aufgetreten ist.

sysname

Nein

object_name

Der Name der Entität, bei der die Überwachung aufgetreten ist. Dies schließt Folgendes ein:

  • Serverobjekte

  • Datenbanken

  • Datenbankobjekte

  • Schemaobjekte

  • TSQL-Anweisung (falls vorhanden)

sysname

Nein

statement

TSQL-Anweisung (falls vorhanden)

nvarchar(4000)

Nein

additional_information

Zusätzliche Informationen über das als XML gespeicherte Ereignis.

nvarchar(4000)

Nein

Hinweise

Einige Aktionen geben nicht den Wert einer Spalte ein, da er auf die Aktion nicht anwendbar sein könnte.

SQL Server Audit speichert 4000 Datenzeichen für Zeichenfelder in einem Überwachungsdatensatz. Wenn die Werte additional_information und statement, die von einer überwachbaren Aktion zurückgegeben wurden, mehr als 4000 Zeichen zurückgeben, wird die Spalte sequence_no dazu verwendet, mehrere Datensätze in einen Überwachungsbericht für eine einzelne Überwachungsaktion zu schreiben, um diese Daten aufzuzeichnen. Der Prozess sieht folgendermaßen aus:

  • Die Anweisungsspalte wird in 4000 Zeichen geteilt.

  • SQL Server Audit schreibt als erste Zeile für den Überwachungsdatensatz die partiellen Daten. Alle anderen Felder werden in jeder Zeile dupliziert.

  • Der sequence_no-Wert wird inkrementiert.

  • Dieser Prozess wird wiederholt, bis alle Daten aufgezeichnet wurden.

Sie können die Daten verbinden, indem Sie die Zeilen sequenziell mit dem Wert sequence_no und den Spalten event_Time, action_id sowie session_id lesen, um die Aktion zu identifizieren.

Siehe auch

Verweis

Konzepte