Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Gilt für:Azure SQL Database
Lager in Microsoft Fabric
SQL-Datenbank in Microsoft Fabric
Die sys.fn_get_audit_file_v2 Systemfunktion ist darauf ausgelegt, Audit-Logdaten mit einer gesteigerten Effizienz im Vergleich zu ihrem Vorgänger abzurufen. sys.fn_get_audit_file Die Funktion führt zeitbasierte Filterung auf Datei- und Datensatzebene ein und bietet erhebliche Leistungsverbesserungen, insbesondere für Abfragen, die auf bestimmte Zeitbereiche abzielen.
Gibt Informationen aus einer Audit-Datei zurück, die durch ein Server-Audit erstellt wurde. Weitere Informationen finden Sie unter SQL Server Audit (Datenbank-Engine).
- Informationen zum Einrichten Azure SQL-Datenbank Überwachung finden Sie unter "Erste Schritte mit SQL-Datenbank Überwachung".
- Informationen zur Einrichtung von Fabric Data Warehouse-Audits finden Sie unter SQL Audit Logs in Fabric Data Warehouse.
- Informationen zur Einrichtung einer SQL-Datenbank in Fabric-Auditing finden Sie unter SQL Audit in SQL database in Fabric.
Transact-SQL-Syntaxkonventionen
Syntax
fn_get_audit_file_v2 ( file_pattern
, { default | initial_file_name | NULL }
, { default | audit_record_offset | NULL }
, { default | start time | NULL }
, { default | end time | NULL } )
Argumente
file_pattern
Gilt nur für: Azure SQL-Datenbank
Gibt das Verzeichnis oder den Pfad und den Dateinamen für den zu lesenden Überwachungsdateisatz an. file_pattern ist nvarchar(260).
Durch Übergeben eines Pfads ohne Dateinamenmuster wird ein Fehler generiert.
Dieses Argument wird verwendet, um eine BLOB-URL (einschließlich des Speicherendpunkts und Containers) anzugeben. Obwohl ein Sternchen nicht unterstützt wird, können Sie ein Teilnamenpräfix (Blob) (anstelle des vollständigen Blobnamens) verwenden, um mehrere Dateien (Blobs) zu sammeln, die mit diesem Präfix beginnen. Zum Beispiel:
<Storage_endpoint>/<Container>/<ServerName>/<DatabaseName>/– sammelt alle Überwachungsdateien (Blobs) für die jeweilige Datenbank.<Storage_endpoint>/<Container>/<ServerName>/<DatabaseName>/<AuditName>/<CreationDate>/<FileName>.xel- sammelt eine bestimmte Überwachungsdatei (BLOB).
initial_file_name
Gilt nur für: Azure SQL-Datenbank
Gibt den Pfad und den Namen einer bestimmten Datei im Überwachungsdateisatz an, von der an die Überwachungsdatensätze gelesen werden sollen. initial_file_name ist nvarchar(260).
Das argument initial_file_name muss gültige Einträge enthalten oder entweder den Wert oder default den NULL Wert enthalten.
audit_record_offset
Gilt nur für: Azure SQL-Datenbank
Gibt einen bekannten Speicherort mit der für die initial_file_name angegebenen Datei an. Wenn dieses Argument verwendet wird, beginnt die Funktion mit dem Lesen am ersten Datensatz des Puffers unmittelbar nach dem angegebenen Offset.
Das Argument audit_record_offset muss gültige Einträge enthalten oder entweder den Wert oder default den NULL Wert enthalten.
audit_record_offset ist groß.
start_time
Die Startzeit zum Filtern der Protokolle. Datensätze vor dieser Zeit werden ausgeschlossen.
end_time
Die Endzeit zum Filtern der Protokolle. Datensätze nach dieser Zeit werden ausgeschlossen.
Zurückgegebene Tabelle
Die folgende Tabelle beschreibt den von dieser Funktion zurückgegebenen Inhalt der Überwachungsdatei.
| Spaltenname | type | Beschreibung |
|---|---|---|
event_time |
datetime2 | Datum und Uhrzeit, zu dem die überprüfbare Aktion ausgelöst wird. Lässt keine NULL-Werte zu. |
sequence_number |
int | Hält die Reihenfolge der Datensätze innerhalb eines einzelnen Überwachungsdatensatzes fest, der zu groß für den Schreibpuffer für Überwachungen ist. Lässt keine NULL-Werte zu. |
action_id |
varchar(4) | ID der Aktion. Lässt keine NULL-Werte zu. |
succeeded |
bit | Gibt an, ob die Aktion, die das Ereignis ausgelöst hat, erfolgreich war Lässt keine NULL-Werte zu. Für alle Ereignisse außer Anmeldeereignisse meldet dies nur, ob die Berechtigungsüberprüfung erfolgreich war oder fehlgeschlagen ist, nicht der Vorgang.1 = Erfolg0 = fehler |
permission_bitmask |
varbinary(16) | In einigen Aktionen ist diese Bitmaske die Berechtigungen, die erteilt, verweigert oder widerrufen wurden. |
is_column_permission |
bit | Flag, das angibt, ob die Berechtigung auf Benutzerebene erteilt wurde Lässt keine NULL-Werte zu. Gibt zurück0, wenn daspermission_bitmask = 0 .1 = True0 = falsch |
session_id |
smallint | Die ID der Sitzung, in der das Ereignis aufgetreten ist. Lässt keine NULL-Werte zu. |
server_principal_id |
int | ID des Anmeldekontexts, in dem die Aktion ausgeführt wird. Lässt keine NULL-Werte zu. |
database_principal_id |
int | ID des Datenbankbenutzerkontexts, in dem die Aktion ausgeführt wird. Lässt keine NULL-Werte zu. Gibt zurück 0 , wenn dies nicht zutrifft. Zum Beispiel bei einem Servervorgang. |
target_server_principal_id |
int | Serverprinzipal, für den der GRANT/DENY/REVOKE Vorgang ausgeführt wird. Lässt keine NULL-Werte zu. Gibt zurück 0 , falls nicht zutreffend. |
target_database_principal_id |
int | Der Datenbankprinzipal, für den der GRANT/DENY/REVOKE Vorgang ausgeführt wird. Lässt keine NULL-Werte zu. Gibt zurück 0 , falls nicht zutreffend. |
object_id |
int | Die ID der Entität, für die die Überwachung aufgetreten ist, einschließlich der folgenden Objekte: - Serverobjekte -Datenbanken - Datenbankobjekte - Schemaobjekte Lässt keine NULL-Werte zu. Gibt zurück 0 , ob es sich bei der Entität um den Server selbst handelt oder wenn die Überwachung nicht auf Objektebene ausgeführt wird. Zum Beispiel bei der Authentifizierung. |
class_type |
varchar(2) | Der Typ der überwachbaren Entität, bei der die Überwachung auftritt. Lässt keine NULL-Werte zu. |
session_server_principal_name |
sysname | Serverprinzipal für Sitzung. NULL-Werte sind zulässig. Gibt die Identität der ursprünglichen Anmeldung zurück, die mit der Instanz des Datenbank-Engine verbunden war, falls explizite oder implizite Kontextoptionen vorhanden waren. |
server_principal_name |
sysname | Aktuelle Anmeldung. NULL-Werte sind zulässig. |
server_principal_sid |
varbinary | Aktuelle Anmeldungs-SID. NULL-Werte sind zulässig. |
database_principal_name |
sysname | Aktueller Benutzer. NULL-Werte sind zulässig. Gibt zurück NULL , wenn sie nicht verfügbar ist. |
target_server_principal_name |
sysname | Zielanmeldung der Aktion NULL-Werte sind zulässig. Gibt zurück NULL , falls nicht zutreffend. |
target_server_principal_sid |
varbinary | SID der Zielanmeldung NULL-Werte sind zulässig. Gibt zurück NULL , falls nicht zutreffend. |
target_database_principal_name |
sysname | Zielbenutzer der Aktion NULL-Werte sind zulässig. Gibt zurück NULL , falls nicht zutreffend. |
server_instance_name |
sysname | Der Name der Serverinstanz, in der die Überwachung aufgetreten ist. Das Standardformat server\instance wird verwendet. |
database_name |
sysname | Der Datenbankkontext, in dem die Aktion aufgetreten ist. NULL-Werte sind zulässig. Gibt NULL für Audits auf Serverebene zurück. |
schema_name |
sysname | Schemakontext, in dem die Aktion durchgeführt wurde NULL-Werte sind zulässig. Gibt NULL für Audits außerhalb eines Schemas zurück. |
object_name |
sysname | Der Name der Entität, für die die Überwachung aufgetreten ist, einschließlich der folgenden Objekte: - Serverobjekte -Datenbanken - Datenbankobjekte - Schemaobjekte NULL-Werte sind zulässig. Gibt zurück NULL , ob es sich bei der Entität um den Server selbst handelt oder wenn die Überwachung nicht auf Objektebene ausgeführt wird. Zum Beispiel bei der Authentifizierung. |
statement |
nvarchar(4000) | Transact-SQL-Anweisung, falls vorhanden. NULL-Werte sind zulässig. Gibt zurück NULL , falls nicht zutreffend. |
additional_information |
nvarchar(4000) | Eindeutige Informationen, die nur für ein einzelnes Ereignis gelten, werden als XML zurückgegeben. Einige überprüfbare Aktionen enthalten diese Art von Informationen. Eine Ebene des T-SQL-Stapels wird im XML-Format für Aktionen angezeigt, denen der T-SQL-Stapel zugeordnet ist. Das XML-Format lautet: <tsql_stack><frame nest_level = '%u' database_name = '%.*s' schema_name = '%.*s' object_name = '%.*s' /></tsql_stack>frame nest_level gibt die aktuelle Schachtelungsebene des Frames an. Der Modulname wird im dreiteiligen Format (database_name, schema_nameund object_name) dargestellt. Der Modulname wird analysiert, um ungültige XML-Zeichen wie <, >, , /. _x Sie werden als _xHHHH_. Das HHHH steht für den vierstelligen hexadezimalen UCS-2-Code für das Zeichen. NULL-Werte sind zulässig. Gibt zurück NULL , wenn keine zusätzlichen Informationen vom Ereignis gemeldet werden. |
file_name |
varchar(260) | Der Pfad und der Name der Überwachungsprotokolldatei, aus der der Datensatz stammt. Lässt keine NULL-Werte zu. |
audit_file_offset |
bigint | Der Pufferoffset in der Datei, die den Überwachungsdatensatz enthält. Lässt keine NULL-Werte zu. |
user_defined_event_id |
smallint | Benutzerdefinierte Ereignis-ID, die als Argument übergeben wird sp_audit_write.
NULL für Systemereignisse (Standard) und ungleich Null für benutzerdefinierte Ereignisse. Weitere Informationen finden Sie unter sp_audit_write (Transact-SQL). |
user_defined_information |
nvarchar(4000) | Wird verwendet, um zusätzliche Informationen aufzuzeichnen, die der Benutzer mithilfe der sp_audit_write gespeicherten Prozedur im Überwachungsprotokoll aufzeichnen möchte. |
audit_schema_version |
int | Immer 1. |
sequence_group_id |
varbinary | Eindeutiger Bezeichner.< |
transaction_id |
bigint | Eindeutiger Bezeichner zum Identifizieren mehrerer Überwachungsereignisse in einer Transaktion. |
client_ip |
nvarchar(128) | Quell-IP der Clientanwendung. |
application_name |
nvarchar(128) | Name der Clientanwendung, die die Anweisung ausgeführt hat, die das Überwachungsereignis verursacht hat. |
duration_milliseconds |
bigint | Dauer der Abfrageausführung in Millisekunden. |
response_rows |
bigint | Die Anzahl der Zeilen wurde im Ergebnissatz zurückgegeben.< |
affected_rows |
bigint | Die Anzahl der zeilen, die von der ausgeführten Anweisung betroffen sind. |
connection_id |
uniqueidentifier | ID der Verbindung auf dem Server. |
data_sensitivity_information |
nvarchar(4000) | Informationstypen und Vertraulichkeitsbezeichnungen, die von der überwachten Abfrage zurückgegeben werden (je nach klassifizierter Spalte in der Datenbank) Erfahren Sie mehr über Azure SQL-Datenbank Ermitteln und Klassifizieren von Daten. |
host_name |
nvarchar(128) | Hostname des Clientcomputers. |
session_context |
nvarchar(4000) | Die Schlüsselwertpaare, die Teil des aktuellen Sitzungskontexts sind. |
client_tls_version |
bigint | Vom Client unterstützte Mindest-TLS-Version. |
client_tls_version_name |
nvarchar(128) | Vom Client unterstützte Mindest-TLS-Version. |
database_transaction_id |
bigint | Transaktions-ID der aktuellen Transaktion in der aktuellen Sitzung. |
ledger_start_sequence_number |
bigint | Die Sequenznummer eines Vorgangs innerhalb einer Transaktion, mit der eine Zeilenversion erstellt wurde. |
external_policy_permissions_checked |
nvarchar(4000) | Informationen im Zusammenhang mit der Überprüfung der externen Autorisierungsberechtigung, wenn ein Überwachungsereignis generiert wird, und purview externe Autorisierungsrichtlinien werden ausgewertet. |
obo_middle_tier_app_id |
varchar(120) | Die Anwendungs-ID der Middle-Tier-Anwendung, die sich über On-Because-of-(OBO)-Zugang verbindet. NULL-Werte sind zulässig. Gibt zurück NULL , wenn die Anforderung nicht über den OBO-Zugriff erfolgt. |
is_local_secondary_replica |
bit |
True wenn der Überwachungsdatensatz aus einem schreibgeschützten lokalen sekundären Replikat stammt, False andernfalls. |
Verbesserungen gegenüber sys.fn_get_audit_file
Die sys.fn_get_audit_file_v2 Funktion bietet eine erhebliche Verbesserung gegenüber den älteren sys.fn_get_audit_file durch die Einführung einer effizienten zeitbasierten Filterung auf Datei- und Datensatzebene. Diese Optimierung eignet sich besonders für Abfragen, die auf kleinere Zeitbereiche ausgerichtet sind, und kann die Leistung in Umgebungen mit mehreren Datenbanken gewährleisten.
Filterung auf dualer Ebene
Filterung auf Dateiebene: Die Funktion filtert zuerst die Dateien basierend auf dem angegebenen Zeitraum, wodurch die Anzahl der dateien reduziert wird, die gescannt werden müssen.
Filterung auf Datensatzebene: Anschließend wird die Filterung innerhalb der ausgewählten Dateien angewendet, um nur die relevanten Datensätze zu extrahieren.
Leistungsverbesserungen
Die Leistungsverbesserungen hängen in erster Linie von der Rolloverzeit der BLOB-Dateien und dem abgefragten Zeitraum ab. Angenommen, eine einheitliche Verteilung von Überwachungsdatensätzen:
Reduzierte Auslastung: Durch die Minimierung der Anzahl der zu scannenden Dateien und Datensätze reduziert sie die Auslastung des Systems und verbessert die Abfrageantwortzeiten.
Skalierbarkeit: Trägt dazu bei, die Leistung aufrechtzuerhalten, auch wenn die Anzahl der Datenbanken steigt, obwohl die Nettoverbesserung in Umgebungen mit einer hohen Anzahl von Datenbanken weniger ausgeprägt sein kann.
Hinweise
Wenn das argument file_pattern übergeben wurde, um auf einen Pfad oder eine Datei zu fn_get_audit_file_v2 verweisen, die nicht vorhanden ist, oder wenn die Datei keine Überwachungsdatei ist, wird die MSG_INVALID_AUDIT_FILE Fehlermeldung zurückgegeben.
Die fn_get_audit_file_v2 Funktion kann nicht verwendet werden, wenn die Prüfung mit den APPLICATION_LOG, SECURITY_LOG, oder EXTERNAL_MONITOR Optionen erstellt wird.
Im Fabric Data Warehouse kann man derzeit nicht auf einzelne Dateien zugreifen, nur auf den Audit-Ordner. Die folgenden Argumente werden für SQL Audit auf einem Lagerprodukt nicht unterstützt: file_pattern, initial_file_name, audit_record_offset.
Berechtigungen
Erforderliche Berechtigungen in Azure SQL Database
Erfordert die CONTROL DATABASE-Berechtigung.
Serveradministratoren können auf Überwachungsprotokolle aller Datenbanken auf dem Server zugreifen.
Nicht-Serveradministratoren können nur auf Überwachungsprotokolle aus der aktuellen Datenbank zugreifen.
Blobs, die die oben genannten Kriterien nicht erfüllen, werden übersprungen (eine Liste der übersprungenen Blobs wird in der Abfrageausgabemeldung angezeigt). Die Funktion gibt Protokolle nur von Blobs zurück, für die der Zugriff zulässig ist.
Erforderliche Berechtigungen in der Fabric-SQL-Datenbank
Um das Auditing mit Fabric-Arbeitsbereichsrollen zu verwalten, müssen Benutzer eine Mitgliedschaft in der Rolle Fabric-Arbeitsbereich-Beitragsmitglied oder höhere Berechtigungen besitzen. So verwalten Sie die Überwachung mit SQL-Berechtigungen:
- Um die Datenbanküberwachung zu konfigurieren, müssen Benutzer ÜBER DIE BERECHTIGUNG ALTER ANY DATABASE AUDIT verfügen.
- Um Überwachungsprotokolle mit T-SQL anzuzeigen, müssen Benutzer über die BERECHTIGUNG "VIEW DATABASE SECURITY AUDIT" verfügen.
Weitere Informationen finden Sie unter Auditing in Fabric SQL-Datenbank.
Erforderliche Berechtigungen im Fabric Data Warehouse
Benutzer müssen die Berechtigung zum Fabric-Item Audit haben. Weitere Informationen finden Sie unter Berechtigungen.
Beispiele
A. View SQL audit logs for Azure SQL Database
In diesem Beispiel werden Überwachungsprotokolle von einem bestimmten Azure Blob Storage-Speicherort abgerufen und Datensätze zwischen 2023-11-17T08:40:40Z und 2023-11-17T09:10:40Z.
SELECT *
FROM sys.fn_get_audit_file_v2(
'https://<storage_account>.blob.core.windows.net/sqldbauditlogs/server_name/database_name/SqlDbAuditing_ServerAudit/',
DEFAULT,
DEFAULT,
'2023-11-17T08:40:40Z',
'2023-11-17T09:10:40Z')
B. Sehen Sie sich SQL-Audit-Logs für das Fabric Data Warehouse an
Dieses Beispiel ruft Audit-Logs aus dem OneLake-Ordner ab, die mit dem aktuellen Arbeitsbereich und Warehouse ausgerichtet sind, und filtert Datensätze zwischen 2023-11-17T08:40:40Z und 2023-11-17T09:10:40Z.
Im Fabric-Portal rufen Sie Ihre workspaceID und warehouseIDab:
-
<workspaceID>: Besuche deinen Arbeitsbereich im Fabric-Portal. Finden Sie das Arbeitsbereich-GUID in der URL nach dem/groups/Abschnitt oder indem Sie es in einem bestehenden Warehouse ausführenSELECT @@SERVERNAME. Wenn auf Ihre/groups/URL/me/folgt, verwenden Sie den Standard-Arbeitsbereich, und derzeit wird SQL Audit for Fabric Data Warehouse im Standard-Arbeitsbereich nicht unterstützt. -
<warehouseID>: Besuche dein Lagerhaus im Fabric-Portal. Finde die Lagerhaus-ID in der URL nach dem/warehouses/Abschnitt.
SELECT *
FROM sys. fn_get_audit_file_v2(
'https://onelake.blob.fabric.microsoft.com/{workspaceId}/{warehouseId}/Audit/sqldbauditlogs/',
DEFAULT,
DEFAULT,
'2023-11-17T08:40:40Z',
'2023-11-17T09:10:40Z')
C. Sehen Sie sich SQL-Audit-Logs für die SQL-Datenbank in Microsoft Fabric an
Dieses Beispiel ruft Auditprotokolle aus OneLake in Microsoft Fabric ab, zwischen 2025-11-17T08:40:40Z und 2025-11-17T09:10:40Z.
Im folgenden Skript müssen Sie Ihre Microsoft Fabric Arbeitsbereichs-ID und Datenbank-ID angeben. Beide sind in der URL des Fabric-Portals zu finden. Beispiel: https://fabric.microsoft.com/groups/<fabric workspace id>/sqldatabases/<fabric sql database id>. Die erste eindeutige Identifikator-Zeichenkette in der URL ist die Fabric-Arbeitsbereich-ID, und die zweite eindeutige Identifikator-Zeichenkette ist die SQL-Datenbank-ID.
- Ersetzen Sie
<fabric_workspace_id>durch Ihre Fabric-Arbeitsbereichs-ID. Sie können die ID eines Arbeitsbereichs ganz einfach in der URL finden; es ist die eindeutige Zeichenfolge innerhalb von zwei/-Zeichen nach/groups/in Ihrem Browserfenster. - Ersetzen Sie
<fabric sql database id>durch Ihre SQL-Datenbank in der Fabric-Datenbank-ID. Sie können die ID des Datenbankelements ganz einfach in der URL finden, es ist die eindeutige Zeichenfolge innerhalb von zwei/Zeichen nach/sqldatabases/dem Browserfenster.
SELECT *
FROM sys.fn_get_audit_file_v2(
'https://onelake.blob.fabric.microsoft.com/<fabric workspace id>/<fabric sql database id>/Audit/sqldbauditlogs/',
DEFAULT,
DEFAULT,
'2025-11-17T08:40:40Z',
'2025-11-17T09:10:40Z')
Weitere Informationen
Systemkatalogansichten:
- sys.server_audit_specifications (Transact-SQL)
- sys.server_audit_specification_details (Transact-SQL)
- sys.datenbankprüfspezifikationen (Transact-SQL)
- sys.database_audit_specification_details (Transact-SQL)
Transact-SQL:
- SERVER-ÜBERPRÜFUNG ERSTELLEN (Transact-SQL)
- ÄNDERUNGSÜBERPRÜFUNG DES SERVERS (Transact-SQL)
- DROP SERVER AUDIT (Transact-SQL)
- SERVER-ÜBERPRÜFUNGSSPEZIFIKATION ERSTELLEN (Transact-SQL)
- ÄNDERN DER SERVER-PRÜFUNGSSPEZIFIKATION (Transact-SQL)
- DROP SERVER-AUDIT-SPEZIFIKATION (Transact-SQL)
- ERSTELLE DATENBANK-ÜBERWACHUNGSSPEZIFIKATION (Transact-SQL)
- ÄNDERE DATENBANK-PRÜFSPEZIFIKATION (Transact-SQL)
- DROP-DATENBANK-AUDIT-SPEZIFIKATION (Transact-SQL)
- ÄNDERN DER AUTORISIERUNG (Transact-SQL)
Zugehöriger Inhalt
- Erstellen einer Serverüberwachung und einer Serverüberwachungsspezifikation
- sys.dm_server_audit_status (Transact-SQL)
- sys.dm_audit_actions (Transact-SQL)
- sys.dm_audit_class_type_map (Transact-SQL)
- sys.server_audits (Transact-SQL)
- sys.server_file_audits (Transact-SQL)
- Fangen Sie mit SQL-Datenbank-Auditing an
- SQL-Audit-Logs im Fabric Data Warehouse