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:
|
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:
|
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