SQL Server Audit-Datensätze

Anwendungsbereich: JaSQL Server (alle unterstützten Versionen)

Die Funktion SQL Server Audit ermöglicht es, Ereignisgruppen und Ereignisse auf Serverebene und auf Datenbankebene zu überwachen. Weitere Informationen finden Sie unter SQL Server Audit (Datenbank-Engine). 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 type 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

Tipp: Damit action_id als Prädikat verwendet werden kann, muss eine Konvertierung von einer Zeichenfolge in einen numerischen Wert durchgeführt werden. Weitere Informationen finden Sie unter Filtern von SQL Server Audit nach dem action_id-Prädikat oder class_type-Prädikat.
varchar(4) Ja
succeeded Gibt an, ob die Berechtigungsprüfung für die Aktion, die das Überwachungsereignis ausgelöst hat, erfolgreich war oder fehlgeschlagen ist. bit
- 1 = Success (Erfolg),
0 = Fehler
Ja
permission_bitmask Zeigt die gewährten, verweigerten oder widerrufenen Berechtigungen an (falls verfügbar) bigint Nein
is_column_permission Flag, das eine Berechtigung auf Spaltenebene angibt. bit
- 1 = True,
0 = False
Nein
session_id Die ID der Sitzung, in 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. Folgende IDs sind möglich:

Serverobjekte

databases

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. varchar(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 Nein
schema_name Schemakontext, in dem die Aktion durchgeführt wurde sysname Nein
object_name Name der Entität, für die die Überwachung durchgeführt wurde Folgende Namen sind möglich:

Serverobjekte

databases

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

Bemerkungen

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 Spalte statement 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.

CREATE SERVER AUDIT (Transact-SQL)

ALTER SERVER AUDIT (Transact-SQL)

DROP SERVER AUDIT (Transact-SQL)

CREATE SERVER AUDIT SPECIFICATION (Transact-SQL)

ALTER SERVER AUDIT SPECIFICATION (Transact-SQL)

DROP SERVER AUDIT SPECIFICATION (Transact-SQL)

CREATE DATABASE AUDIT SPECIFICATION (Transact-SQL)

ALTER DATABASE AUDIT SPECIFICATION (Transact-SQL)

DROP DATABASE AUDIT SPECIFICATION (Transact-SQL)

ALTER AUTHORIZATION (Transact-SQL)

sys.fn_get_audit_file (Transact-SQL)

sys.server_audits (Transact-SQL)

sys.server_file_audits (Transact-SQL)

sys.server_audit_specifications (Transact-SQL)

sys.server_audit_specification_details (Transact-SQL)

sys.database_audit_specifications (Transact-SQL)

sys.database_audit_specification_details (Transact-SQL)

sys.dm_server_audit_status (Transact-SQL)

sys.dm_audit_actions (Transact-SQL)

sys.dm_audit_class_type_map (Transact-SQL)