Not
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Gäller för:Azure SQL Database
Lager i Microsoft Fabric
SQL-databas i Microsoft Fabric
Systemfunktionen sys.fn_get_audit_file_v2 är utformad för att hämta revisionsloggdata med ökad effektivitet jämfört med sin föregångare, sys.fn_get_audit_file. Funktionen introducerar tidsbaserad filtrering både på fil- och postnivå, vilket ger betydande prestandaförbättringar, särskilt för frågor som riktar sig mot specifika tidsintervall.
Returnerar information från en revisionsfil skapad av en serverrevision. Mer information finns i SQL Server-granskning (databasmotor).
- För information om hur du sätter upp Azure SQL Database-granskning, se Kom igång med SQL Database Auditing.
- För information om hur du sätter upp Fabric Data Warehouse-revision, se SQL Audit Logs i Fabric Data Warehouse.
- För information om hur man sätter upp SQL-databaser i Fabric-granskning, se SQL Audit i SQL-databas i Fabric.
Transact-SQL syntaxkonventioner
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 } )
Arguments
file_pattern
Gäller för: Azure SQL Database only
Specificerar katalog eller sökväg och filnamn för revisionsfiluppsättningen som ska läsas. file_pattern är nvarchar(260).
Att skicka en sökväg utan filnamnsmönster genererar ett fel.
Detta argument används för att specificera en blob-URL (inklusive lagringsändpunkt och container). Även om det inte stöder en asterisk-wildcard, kan du använda ett partiellt filnamnsprefix (istället för hela blob-namnet) för att samla flera filer (blobs) som börjar med detta prefix. Till exempel:
<Storage_endpoint>/<Container>/<ServerName>/<DatabaseName>/- samlar in alla revisionsfiler (blobs) för den specifika databasen.<Storage_endpoint>/<Container>/<ServerName>/<DatabaseName>/<AuditName>/<CreationDate>/<FileName>.xel- samlar in en specifik revisionsfil (blob).
initial_file_name
Gäller för: Azure SQL Database only
Specificerar vägen och namnet på en specifik fil i revisionsfiluppsättningen för att börja läsa revisionsposter från. initial_file_name är nvarchar(260).
Argumentet initial_file_name måste innehålla giltiga poster eller innehålla default antingen värdet ellerNULL.
audit_record_offset
Gäller för: Azure SQL Database only
Anger en känd plats med filen som anges för initial_file_name. När detta argument används börjar funktionen läsa vid den första posten i bufferten direkt efter den specificerade offseten.
Argumentet audit_record_offset måste innehålla giltiga poster eller antingen innehålla default värdet ellerNULL.
audit_record_offset är bigint.
start_time
Starttiden för filtrering av loggarna. Register före denna tid är undantagna.
end_time
Sluttiden för att filtrera loggarna. Register efter denna tid utesluts.
Tabellen returneras
Följande tabell beskriver innehållet i revisionsfilen som returneras av denna funktion.
| Kolumnnamn | Typ | Description |
|---|---|---|
event_time |
datetime2 | Datum och tid när den granskningsbara åtgärden utlöses. Inte nullbar. |
sequence_number |
int | Spårar sekvensen med poster i en enskild granskningspost som var för stor för att få plats i skrivbufferten för granskningar. Inte nullbar. |
action_id |
varchar(4) | ID av handlingen. Inte nullbar. |
succeeded |
bit | Anger om åtgärden som utlöste händelsen lyckades. Inte nullbar. För alla andra händelser än inloggningshändelser rapporterar detta endast om behörighetskontrollen lyckades eller misslyckades, inte åtgärden.1 = lyckad0 = misslyckas |
permission_bitmask |
varbinary(16) | I vissa åtgärder är denna bitmask de behörigheter som beviljades, nekades eller återkallades. |
is_column_permission |
bit | Flagga som anger om detta är en behörighet på kolumnnivå. Inte nullbar. Återkommer 0 när .permission_bitmask = 01 = sant0 = falskt |
session_id |
smallint | ID för sessionen där händelsen inträffade. Inte nullbar. |
server_principal_id |
int | ID för inloggningskontexten som åtgärden utförs i. Inte nullbar. |
database_principal_id |
int | ID för databasanvändarkontexten som åtgärden utförs i. Inte nullbar. Returnerar 0 om detta inte gäller. Till exempel en serveråtgärd. |
target_server_principal_id |
int | Serverprincipen som operationen GRANT/DENY/REVOKE utförs på. Inte nullbar. Returer 0 om det inte är tillämpligt. |
target_database_principal_id |
int | Databasprincipen GRANT/DENY/REVOKE som operationen utförs på. Inte nullbar. Returer 0 om det inte är tillämpligt. |
object_id |
int | ID:t för den enhet som revisionen genomfördes, vilket inkluderar följande objekt: - Serverobjekt -Databaser - Databasobjekt - Schemaobjekt Inte nullbar. Returnerar 0 om entiteten är själva servern eller om revisionen inte utförs på objektnivå. Till exempel Autentisering. |
class_type |
varchar(2) | Den typ av granskningsbar entitet som granskningen sker på. Inte nullbar. |
session_server_principal_name |
sysname | Serverprincip för session. Nullable. Returnerar identiteten på den ursprungliga inloggningen som var ansluten till instansen av databasmotorn om det fanns explicita eller implicita kontextbyten. |
server_principal_name |
sysname | Aktuell inloggning. Nullable. |
server_principal_sid |
varbinary | Aktuellt inloggnings-SID. Nullable. |
database_principal_name |
sysname | Aktuell användare. Nullable. Returnerar NULL om det inte finns tillgängligt. |
target_server_principal_name |
sysname | Målinloggning för åtgärd. Nullable. Returer NULL om det inte är tillämpligt. |
target_server_principal_sid |
varbinary | SID för målinloggning. Nullable. Returer NULL om det inte är tillämpligt. |
target_database_principal_name |
sysname | Måla användaren av handlingen. Nullable. Returer NULL om det inte är tillämpligt. |
server_instance_name |
sysname | Namnet på den serverinstans där granskningen inträffade. Standardformatet server\instance används. |
database_name |
sysname | Databaskontexten där åtgärden inträffade. Nullable. Rapporter NULL för revisioner som sker på servernivå. |
schema_name |
sysname | Schemakontexten där åtgärden inträffade. Nullable. Rapporter NULL för revisioner som sker utanför ett schema. |
object_name |
sysname | Namnet på den enhet som revisionen genomfördes, vilket inkluderar följande objekt: - Serverobjekt -Databaser - Databasobjekt - Schemaobjekt Nullable. Returnerar NULL om entiteten är själva servern eller om revisionen inte utförs på objektnivå. Till exempel Autentisering. |
statement |
nvarchar(4000) | Transact-SQL uttalande om det finns. Nullable. Returer NULL om det inte är tillämpligt. |
additional_information |
nvarchar(4000) | Unik information som endast gäller för en enskild händelse returneras som XML. Några granskningsbara åtgärder innehåller den här typen av information. En nivå av T-SQL-stacken visas i XML-format för åtgärder som har T-SQL-stack kopplad till sig. XML-formatet är: <tsql_stack><frame nest_level = '%u' database_name = '%.*s' schema_name = '%.*s' object_name = '%.*s' /></tsql_stack>frame nest_level anger den aktuella inbäddningsnivån för ramen. Modulnamnet representeras i tredelat format (database_name, schema_name, och object_name). Modulnamnet tolkas för att undvika ogiltiga XML-tecken som <, >, /, . _x De har rymt som _xHHHH_. Står HHHH för den fyrsiffriga hexadecimala UCS-2-koden för tecknet. Nullable. Återkommer NULL när det inte rapporteras ytterligare information från händelsen. |
file_name |
varchar(260) | Sökvägen och namnet på granskningsloggfilen som posten kom från. Inte nullbar. |
audit_file_offset |
bigint | Buffertförskjutningen i filen som innehåller granskningsposten. Inte nullbar. |
user_defined_event_id |
smallint | Användardefinierad händelse-ID passades som ett argument till sp_audit_write.
NULL för systemhändelser (standard) och icke-noll för användardefinierade händelser. Mer information finns i sp_audit_write (Transact-SQL). |
user_defined_information |
nvarchar(4000) | Används för att registrera eventuell extra information som användaren vill registrera i granskningsloggen med hjälp av den sp_audit_write lagrade proceduren. |
audit_schema_version |
int | Alltid 1. |
sequence_group_id |
varbinary | Unik identifierare.< |
transaction_id |
bigint | Unik identifierare för att identifiera flera revisionshändelser i en och samma transaktion. |
client_ip |
nvarchar(128) | Käll-IP för klientapplikationen. |
application_name |
nvarchar(128) | Namnet på klientapplikationen som utförde uttalandet som orsakade revisionshändelsen. |
duration_milliseconds |
bigint | Frågeexekveringstiden är i millisekunder. |
response_rows |
bigint | Antal rader returnerades i resultatuppsättningen.< |
affected_rows |
bigint | Antal rader påverkas av det utförda uttalandet. |
connection_id |
uniqueidentifier | ID för anslutningen i servern. |
data_sensitivity_information |
nvarchar(4000) | Informationstyper och känslighetsetiketter som returneras av den granskade frågan, baserat på de klassificerade kolumnerna i databasen. Lär dig mer om Azure SQL Database dataupptäckt och klassificering. |
host_name |
nvarchar(128) | Värdnamnet på klientmaskinen. |
session_context |
nvarchar(4000) | De nyckel-värde-par som är en del av den aktuella sessionskontexten. |
client_tls_version |
bigint | Minsta TLS-version som stöds av klienten. |
client_tls_version_name |
nvarchar(128) | Minsta TLS-version som stöds av klienten. |
database_transaction_id |
bigint | Transaktions-ID för den aktuella transaktionen i den aktuella sessionen. |
ledger_start_sequence_number |
bigint | Sekvensnumret för en operation inom en transaktion som skapade en radversion. |
external_policy_permissions_checked |
nvarchar(4000) | Information relaterad till den externa auktorisationskontrollen, när en revisionshändelse genereras, och Purviews externa auktorisationspolicys utvärderas. |
obo_middle_tier_app_id |
Varchar(120) | Applikations-ID:t för den mellannivåapplikation som ansluter med hjälp av on-because-of (OBO)-åtkomst. Nullable. Returneras NULL om begäran inte görs med OBO-åtkomst. |
is_local_secondary_replica |
bit |
True Om revisionsposten kommer från en skrivskyddad lokal sekundär replika, False annars. |
Förbättringar jämfört med sys.fn_get_audit_file
Funktionen sys.fn_get_audit_file_v2 erbjuder en betydande förbättring jämfört med den äldre sys.fn_get_audit_file genom att införa effektiv tidsbaserad filtrering på både fil- och postnivå. Denna optimering är särskilt fördelaktig för frågor som riktar sig mot mindre tidsintervall och kan hjälpa till att bibehålla prestandan i miljöer med flera databaser.
Dubbelnivåfiltrering
Filnivåfiltrering: Funktionen filtrerar först filerna baserat på det angivna tidsintervallet, vilket minskar antalet filer som behöver skannas.
Postnivåfiltrering: Den tillämpar sedan filtrering inom de valda filerna för att endast extrahera relevanta poster.
Prestandaförbättringar
Prestandaförbättringarna beror främst på överföringstiden för blobfilerna och det frågeställda tidsintervallet. Under antagandet av en enhetlig fördelning av revisionsdokument:
Minskad belastning: Genom att minimera antalet filer och poster att skanna minskar belastningen på systemet och svarstiderna för frågor förbättras.
Skalbarhet: Hjälper till att bibehålla prestandan även när antalet databaser ökar, även om nettoförbättringen kan vara mindre uttalad i miljöer med många databaser.
Anmärkningar
Om det file_pattern argumentet som skickas till fn_get_audit_file_v2 refererar till en sökväg eller fil som inte finns, eller om filen inte är en revisionsfil, returneras felmeddelandet MSG_INVALID_AUDIT_FILE .
Funktionen fn_get_audit_file_v2 kan inte användas när revisionen skapas med APPLICATION_LOG, SECURITY_LOG, eller EXTERNAL_MONITOR alternativen.
Just nu i Fabric Data Warehouse kan du inte komma åt enskilda filer, bara revisionsmappen. Följande argument stöds inte för SQL Audit på ett lagerobjekt: file_pattern, initial_file_name, audit_record_offset.
Permissions
Behörigheter som krävs i Azure SQL Database
Kräver behörigheten CONTROL DATABASE .
Serveradministratörer kan komma åt revisionsloggar för alla databaser på servern.
Icke-serveradministratörer kan bara komma åt revisionsloggar från den aktuella databasen.
Blobs som inte uppfyller ovanstående kriterier hoppas över (en lista över hoppade blobs visas i frågeutdatameddelandet). Funktionen returnerar loggar endast från blobs för vilka åtkomst är tillåten.
Behörigheter som krävs i Fabric SQL-databasen
För att hantera granskning med Fabric-workspace-roller måste användare ha medlemskap i Fabric workspace Contributor-rollen eller högre behörigheter. Så här hanterar du granskning med SQL-behörigheter:
- För att konfigurera databaskontroll behöver användarna ha behörigheten ÄNDRA ALLA DATABASAUDITS.
- Om du vill visa granskningsloggar med hjälp av T-SQL måste användarna ha behörigheten VIEW DATABASE SECURITY AUDIT.
För mer information, se Revision i Fabric SQL-databas.
Behörigheter som krävs i Fabric Data Warehouse
Användare måste ha behörighet för Fabric-objektet Audit . Mer information finns i Behörigheter.
Examples
A. View SQL audit logs for Azure SQL Database
Detta exempel hämtar revisionsloggar från en specifik Azure Blob Storage-plats och filtrerar poster mellan 2023-11-17T08:40:40Z och 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. Visa SQL-revisionsloggar för Fabric Data Warehouse
Detta exempel hämtar revisionsloggar från OneLake-mappen som är justerade med det aktuella arbetsområdet och lagret, och filtrerar poster mellan 2023-11-17T08:40:40Z och 2023-11-17T09:10:40Z.
I Fabric-portalen, hämta din workspaceID och warehouseID:
-
<workspaceID>: Besök din arbetsplats i Fabric-portalen. Hitta arbetsytans GUID i URL:en efter avsnittet/groups/, eller genom att köraSELECT @@SERVERNAMEi ett befintligt lager. Om din/groups/URL följs av/me/, använder du standardarbetsytan, och för närvarande stöds inte SQL Audit for Fabric Data Warehouse i standardarbetsytan. -
<warehouseID>: Besök ditt lager i Fabric-portalen. Hitta lager-ID:t i URL:en efter avsnittet/warehouses/.
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. Visa SQL-revisionsloggar för SQL-databasen i Microsoft Fabric
Detta exempel hämtar revisionsloggar från OneLake i Microsoft Fabric, mellan 2025-11-17T08:40:40Z och 2025-11-17T09:10:40Z.
I följande skript behöver du ange ditt Microsoft Fabric-arbetsområdes-ID och databas-ID. Båda kan hittas i URL:en från Fabric-portalen. Till exempel: https://fabric.microsoft.com/groups/<fabric workspace id>/sqldatabases/<fabric sql database id>. Den första unika identifieringssträngen i URL:en är Fabric workspace ID, och den andra unika identifieringssträngen är SQL-databasens ID.
- Ersätt
<fabric_workspace_id>med ditt Fabric arbetsyte-ID. Du hittar enkelt ID:t för en arbetsyta i URL:en, det är den unika strängen inuti två/tecken efter/groups/i webbläsarfönstret. - Ersätt
<fabric sql database id>med din SQL-databas i Fabric-databas-ID. Du hittar enkelt ID:t för databasobjektet i URL:en, det är den unika strängen inuti två/tecken efter/sqldatabases/i webbläsarfönstret.
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')
Mer information
Systemkatalogvyer:
- 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)
Transact-SQL:
- SKAPA SERVERGRANSKNING (Transact-SQL)
- ALTER SERVER AUDIT (Transact-SQL)
- DROP SERVER AUDIT (Transact-SQL)
- SKAPA SERVERGRANSKNINGSSPECIFIKATION (Transact-SQL)
- ÄNDRA SERVERGRANSKNINGSSPECIFIKATION (Transact-SQL)
- TA BORT SERVERGRANSKNINGSSPECIFIKATION (Transact-SQL)
- SKAPA GRANSKNINGSSPECIFIKATION FÖR DATABAS (Transact-SQL)
- ÄNDRA SPECIFIKATION FÖR DATABASGRANSKNING (Transact-SQL)
- TA BORT DATABASGRANSKNINGSSPECIFIKATION (Transact-SQL)
- ÄNDRA AUKTORISATION (Transact-SQL)
Relaterat innehåll
- Skapa en servergranskning och en servergranskningsspecifikation
- 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)
- Kom igång med SQL-databasgranskning
- SQL-revisionsloggar i Fabric Data Warehouse