Überwachungsprotokollformate in Azure SQL-Datenbank

Gilt für:Azure SQL-DatenbankAzure SQL Managed InstanceAzure Synapse Analytics

Bei der Azure SQL-Datenbank-Überwachung werden Datenbankereignisse nachverfolgt und in Überwachungsprotokolle in Ihrem Azure-Speicherkonto geschrieben oder für die Downstreamverarbeitung und -analyse an Event Hub bzw. Log Analytics gesendet.

Benennungskonventionen

Blobüberwachung

Überwachungsprotokoll, die in Azure Blob Storage gespeichert werden, werden in einem Container namens sqldbauditlogs im Azure-Speicherkonto gespeichert. Die Verzeichnishierarchie innerhalb des Containers weist das Format <ServerName>/<DatabaseName>/<AuditName>/<Date>/ auf. Die Dateinamen für Blobs weisen das Format <CreationTime>_<FileNumberInSession>.xel auf. Hierbei entspricht CreationTime dem UTC-Format hh_mm_ss_ms, und FileNumberInSession ist ein laufender Index, der für den Fall vorhanden ist, dass Sitzungsprotokolle sich über mehrere Blobdateien erstrecken.

Für die Datenbank Database1 unter Server1 wäre beispielsweise folgender Pfad gültig:

Server1/Database1/SqlDbAuditing_ServerAudit_NoRetention/2019-02-03/12_23_30_794_0.xel

Überwachungsprotokolle für schreibgeschützte Replikate werden im selben Container gespeichert. Die Verzeichnishierarchie innerhalb des Containers weist das Format <ServerName>/<DatabaseName>/<AuditName>/<Date>/RO/ auf. Der Name der Blobdatei weist das gleiche Format auf. Die Überwachungsprotokolle für schreibgeschützte Replikate werden im selben Container gespeichert.

Event Hub

Überwachungsereignisse werden in den Namespace und Event Hub geschrieben, der während der Konfiguration festgelegt wurde, im Textkörper von Apache Avro-Ereignissen erfasst und im JSON-Format mit UTF-8-Codierung gespeichert. Zum Lesen der Überwachungsprotokolle können Sie Avro Tools oder ähnliche Tools verwenden, die dieses Format verarbeiten können.

Log Analytics

Überwachungsereignisse werden an folgende Orte geschrieben: in den Log Analytics-Arbeitsbereich, der während der Überwachungskonfiguration definiert wurde, in die AzureDiagnostics-Tabelle mit der Kategorie SQLSecurityAuditEvents und in die Tabelle mit der Kategorie DevOpsOperationsAudit für Microsoft-Support-Vorgänge. Weitere nützliche Informationen zu Log Analytics-Suchsprache und -Suchbefehlen finden Sie unter Referenz zur Log Analytics-Suche.

Felder eines Überwachungsprotokolls

Name (Blob) Name (Event Hubs/Log Analytics) BESCHREIBUNG Blobtyp Event Hubs-/Log Analytics-Typ
action_id action_id_s ID der Aktion varchar(4) Zeichenfolge
action_name action_name_s Name der Aktion Zeichenfolge
additional_information additional_information_s Zusätzliche Informationen zum Ereignis (im XML-Format gespeichert) nvarchar(4000) Zeichenfolge
affected_rows affected_rows_d Anzahl der von der Abfrage betroffenen Zeilen BIGINT INT
application_name application_name_s Name der Clientanwendung nvarchar(128) Zeichenfolge
audit_schema_version audit_schema_version_d Immer 1 INT INT
class_type class_type_s Typ der überwachbaren Entität, für die die Überwachung ausgeführt wird varchar(2) Zeichenfolge
class_type_desc class_type_description_s Beschreibung der überwachbaren Entität, für die die Überwachung ausgeführt wird Zeichenfolge
client_ip client_ip_s Quell-IP-Adresse der Clientanwendung nvarchar(128) Zeichenfolge
connection_id ID der Verbindung auf dem Server GUID
data_sensitivity_information data_sensitivity_information_s Informationstypen und Vertraulichkeitsbezeichnungen, die von der überwachten Abfrage zurückgegeben werden (je nach klassifizierter Spalte in der Datenbank) Weitere Informationen: Azure SQL-Datenbank: Datenermittlung und -klassifizierung nvarchar(4000) Zeichenfolge
database_name database_name_s Datenbankkontext, in dem die Aktion durchgeführt wurde sysname Zeichenfolge
database_principal_id database_principal_id_d ID des Datenbankbenutzerkontexts, in dem die Aktion durchgeführt wurde INT INT
database_principal_name database_principal_name_s Name des Datenbankbenutzerkontexts, in dem die Aktion durchgeführt wurde sysname Zeichenfolge
duration_milliseconds duration_milliseconds_d Ausführungsdauer der Abfrage in Millisekunden BIGINT INT
event_time event_time_t Datum und Uhrzeit, zu dem die überwachbare Aktion ausgelöst wurde datetime2 datetime
host_name Clienthostname Zeichenfolge
is_column_permission is_column_permission_s Flag, das angibt, ob die Berechtigung auf Benutzerebene erteilt wurde 1 = ja, 0 = nein bit Zeichenfolge
is_server_level_audit_s Flag, das angibt, ob die Überwachung auf Serverebene durchgeführt wird Zeichenfolge
object_ id object_id_d ID der Entität, für die die Überwachung durchgeführt wurde Dazu zählen Serverobjekte, Datenbanken, Datenbankobjekte und Schemaobjekte. 0, wenn die Entität den Server selbst darstellt oder die Überwachung nicht auf Objektebene durchgeführt wurde INT INT
object_name object_name_s Name der Entität, für die die Überwachung durchgeführt wurde Dazu zählen Serverobjekte, Datenbanken, Datenbankobjekte und Schemaobjekte. 0, wenn die Entität den Server selbst darstellt oder die Überwachung nicht auf Objektebene durchgeführt wurde sysname Zeichenfolge
obo_middle_tier_app_id obo_middle_tier_app_id_s Die Anwendungs-ID der Anwendung auf mittlerer Ebene, die über OBO-Zugriff mit der SQL-Datenbank verbunden ist. varchar(120) Zeichenfolge
permission_bitmask permission_bitmask_s Zeigt die gewährten, verweigerten oder widerrufenen Berechtigungen an (falls verfügbar) varbinary(16) Zeichenfolge
response_rows response_rows_d Anzahl der im Resultset zurückgegebenen Zeilen BIGINT INT
schema_name schema_name_s Schemakontext, in dem die Aktion durchgeführt wurde NULL, wenn eine Überwachung außerhalb eines Schemas durchgeführt wird sysname Zeichenfolge
securable_class_type_s Sicherungsfähige Objekte, die dem überwachten class_type zugeordnet werden Zeichenfolge
sequence_group_id sequence_group_id_g Eindeutiger Bezeichner varbinary GUID
sequence_number sequence_number_d Hält die Reihenfolge der Datensätze innerhalb eines einzelnen Überwachungsdatensatzes fest, der zu groß für den Schreibpuffer für Überwachungen ist. Hinweis: Die Überwachung von Azure SQL-Datenbank und Azure Synapse speichert 4.000 Datenzeichen für Zeichenfelder in einem Überwachungsdatensatz. Wenn mehr als 4.000 Zeichen vorhanden sind, werden alle Daten abgeschnitten, die über die ersten 4.000 Zeichen hinausgehen. INT INT
server_instance_name server_instance_name_s Name der Serverinstanz, in der die Überwachung durchgeführt wurde sysname Zeichenfolge
server_principal_id server_principal_id_d ID des Anmeldekontexts, in dem die Aktion durchgeführt wurde INT INT
server_principal_name server_principal_name_s Aktuelle Anmeldung sysname Zeichenfolge
server_principal_sid server_principal_sid_s Aktuelle Anmelde-SID varbinary Zeichenfolge
session_id session_id_d ID der Sitzung, in der das Ereignis aufgetreten ist SMALLINT INT
session_server_principal_name session_server_principal_name_s Dienstprinzipal für die Sitzung sysname Zeichenfolge
statement statement_s Ausgeführte T-SQL-Anweisung (falls verfügbar) nvarchar(4000) Zeichenfolge
succeeded succeeded_s Gibt an, ob die Aktion, die das Ereignis ausgelöst hat, erfolgreich war Für Ereignisse, die keine Anmelde- oder Batchereignisse sind, wird nur erfasst, ob die Berechtigungsüberprüfung erfolgreich war oder nicht. Der Vorgang wird nicht erfasst. 1 = Erfolg, 0 = Fehler bit Zeichenfolge
target_database_principal_id target_database_principal_id_d Datenbankprinzipal, auf dem der GRANT-, DENY- oder REVOKE-Vorgang ausgeführt wird. 0, falls nicht zutreffend INT INT
target_database_principal_name target_database_principal_name_s Zielbenutzer der Aktion NULL, falls nicht zutreffend Zeichenfolge Zeichenfolge
target_server_principal_id target_server_principal_id_d Dienstprinzipal, auf dem der GRANT-, DENY- oder REVOKE-Vorgang ausgeführt wird Gibt 0 zurück, falls nicht zutreffend INT INT
target_server_principal_name target_server_principal_name_s Zielanmeldung der Aktion NULL, falls nicht zutreffend sysname Zeichenfolge
target_server_principal_sid target_server_principal_sid_s SID der Zielanmeldung NULL, falls nicht zutreffend varbinary Zeichenfolge
transaction_id transaction_id_d nur SQL Server (ab 2016), 0 für Azure SQL-Datenbank BIGINT INT
user_defined_event_id user_defined_event_id_d Benutzerdefinierte Ereignis-ID, die als Argument an sp_audit_write übergeben wird NULL für Systemereignisse (Standardwert), ungleich 0 für benutzerdefinierte Ereignisse Weitere Informationen: sp_audit_write (Transact-SQL) SMALLINT INT
user_defined_information user_defined_information_s Benutzerdefinierte Informationen, die als Argument an sp_audit_write übergeben werden NULL für Systemereignisse (Standardwert), ungleich 0 für benutzerdefinierte Ereignisse Weitere Informationen: sp_audit_write (Transact-SQL) nvarchar(4000) Zeichenfolge

Nächste Schritte

Lesen Sie mehr zur Überwachung in Azure SQL-Datenbank.