Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Van toepassing op:Azure SQL Database
Magazijn in Microsoft Fabric
SQL-database in Microsoft Fabric
De sys.fn_get_audit_file_v2 systeemfunctie is ontworpen om auditloggegevens op te halen met een hogere efficiëntie ten opzichte van zijn voorganger, sys.fn_get_audit_file. De functie introduceert tijdgebaseerde filtering op zowel bestands- als recordniveau, wat aanzienlijke prestatieverbeteringen oplevert, vooral voor zoekopdrachten die zich richten op specifieke tijdbereiken.
Geeft informatie terug uit een auditbestand dat is aangemaakt door een serveraudit. Zie SQL Server Audit (Database Engine)voor meer informatie.
- Voor informatie over het opzetten van Azure SQL Database auditing, zie Get Started with SQL Database Auditing.
- Voor informatie over het opzetten van Fabric Data Warehouse-auditing, zie SQL Audit Logs in Fabric Data Warehouse.
- Voor informatie over het opzetten van een SQL-database in Fabric-auditing, zie SQL Audit in SQL database in Fabric.
Transact-SQL syntaxis-conventies
Syntaxis
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
Van toepassing op: Azure SQL Database only
Specificeert de map of het pad en de bestandsnaam voor de auditbestandset die gelezen moet worden. file_pattern is nvarchar(260).
Het doorgeven van een pad zonder bestandsnaampatroon genereert een fout.
Dit argument wordt gebruikt om een blob-URL te specificeren (inclusief het opslag-eindpunt en de container). Hoewel het geen asterisk wildcard ondersteunt, kun je een gedeeltelijke bestandsnaamvoorvoegsel (blob) gebruiken (in plaats van de volledige blobnaam) om meerdere bestanden (blobs) te verzamelen die met dit voorvoegsel beginnen. Voorbeeld:
<Storage_endpoint>/<Container>/<ServerName>/<DatabaseName>/- verzamelt alle auditbestanden (blobs) voor de specifieke database.<Storage_endpoint>/<Container>/<ServerName>/<DatabaseName>/<AuditName>/<CreationDate>/<FileName>.xel- verzamelt een specifiek auditbestand (blob).
initial_file_name
Van toepassing op: Azure SQL Database only
Specificeert het pad en de naam van een specifiek bestand in de auditbestandsset waaruit auditrecords moeten worden gelezen. initial_file_name is nvarchar(260).
Het argument initial_file_name moet geldige elementen bevatten of ofwel de defaultNULL of-waarde bevatten.
audit_record_offset
Van toepassing op: Azure SQL Database only
Geeft een bekende locatie aan met het bestand dat voor de initial_file_name is opgegeven. Wanneer dit argument wordt gebruikt, begint de functie direct na de gespecificeerde offset te lezen bij het eerste record van de buffer.
Het argument audit_record_offset moet geldige elementen bevatten of ofwel de defaultNULL of-waarde bevatten.
audit_record_offset is bigint.
start_time
De starttijd voor het filteren van de logs. Records van vóór deze periode zijn uitgesloten.
end_time
De eindtijd voor het filteren van de logs. Records na deze periode worden uitgesloten.
Tabel geretourneerd
De volgende tabel beschrijft de inhoud van het auditbestand dat door deze functie wordt geretourneerd.
| Kolomnaam | Typologie | Description |
|---|---|---|
event_time |
datetime2 | Datum en tijd waarop de controleerbare actie wordt geactiveerd. Niet nullwaarde. |
sequence_number |
int | Houdt de reeks records in één controlerecord bij die te groot was om in de schrijfbuffer voor controles te passen. Niet nullwaarde. |
action_id |
varchar(4) | ID van de actie. Niet nullwaarde. |
succeeded |
bit | Geeft aan of de actie die de gebeurtenis heeft geactiveerd, is geslaagd. Niet nullwaarde. Voor alle andere gebeurtenissen dan aanmeldingsgebeurtenissen wordt alleen gerapporteerd of de machtigingscontrole is geslaagd of mislukt, niet de bewerking.1 = succes0 = mislukt |
permission_bitmask |
varbinary(16) | In sommige acties zijn deze bitmaskers de rechten die zijn verleend, geweigerd of ingetrokken. |
is_column_permission |
bit | Vlag die aangeeft of dit een machtiging op kolomniveau is. Niet nullwaarde. Komt terug 0 wanneer depermission_bitmask = 0 .1 = waar0 = onwaar |
session_id |
smallint | Id van de sessie waarop de gebeurtenis heeft plaatsgevonden. Niet nullwaarde. |
server_principal_id |
int | Id van de aanmeldingscontext waarin de actie wordt uitgevoerd. Niet nullwaarde. |
database_principal_id |
int | Id van de databasegebruikerscontext waarin de actie wordt uitgevoerd. Niet nullwaarde. Retourneringen 0 als dit niet van toepassing is. Bijvoorbeeld een serverbewerking. |
target_server_principal_id |
int | Serverprincipal waarop de GRANT/DENY/REVOKE bewerking wordt uitgevoerd. Niet nullwaarde. Retourneringen 0 als dat niet van toepassing is. |
target_database_principal_id |
int | De databaseprincipal waarop de GRANT/DENY/REVOKE bewerking wordt uitgevoerd. Niet nullwaarde. Retourneringen 0 als dat niet van toepassing is. |
object_id |
int | De ID van de entiteit waarop de audit heeft plaatsgevonden, waaronder de volgende objecten: - Serverobjecten -Databases - Databaseobjecten - Schema-objecten Niet nullwaarde. Geeft terug 0 als de entiteit zelf de server is of als de audit niet op objectniveau wordt uitgevoerd. Bijvoorbeeld verificatie. |
class_type |
varchar(2) | Het type controleerbare entiteit waarop de controle plaatsvindt. Niet nullwaarde. |
session_server_principal_name |
sysname | Server principal voor sessie. Nullable. Geeft de identiteit terug van de oorspronkelijke login die verbonden was met de instantie van de Database Engine in het geval er expliciete of impliciete contextwisselingen waren. |
server_principal_name |
sysname | Huidige aanmelding. Nullable. |
server_principal_sid |
varbinary | Huidige aanmeldings-SID. Nullable. |
database_principal_name |
sysname | Huidige gebruiker. Nullable. Retourneren NULL als het niet beschikbaar is. |
target_server_principal_name |
sysname | Doelwit-inlog van actie. Nullable. Retourneringen NULL als dat niet van toepassing is. |
target_server_principal_sid |
varbinary | SID van doelwitlogin. Nullable. Retourneringen NULL als dat niet van toepassing is. |
target_database_principal_name |
sysname | Doelwit op de gebruiker van actie. Nullable. Retourneringen NULL als dat niet van toepassing is. |
server_instance_name |
sysname | Naam van het serverexemplaren waar de controle heeft plaatsgevonden. Het standaardformaat server\instance wordt gebruikt. |
database_name |
sysname | De databasecontext waarin de actie heeft plaatsgevonden. Nullable. Rapporten NULL voor audits die op serverniveau plaatsvinden. |
schema_name |
sysname | De schemacontext waarin de actie heeft plaatsgevonden. Nullable. Aangiften NULL voor audits die buiten een schema plaatsvinden. |
object_name |
sysname | De naam van de entiteit waarop de audit heeft plaatsgevonden, waaronder de volgende objecten: - Serverobjecten -Databases - Databaseobjecten - Schema-objecten Nullable. Geeft terug NULL als de entiteit zelf de server is of als de audit niet op objectniveau wordt uitgevoerd. Bijvoorbeeld verificatie. |
statement |
nvarchar(4000) | Transact-SQL verklaring als die bestaat. Nullable. Retourneringen NULL als dat niet van toepassing is. |
additional_information |
nvarchar(4000) | Unieke informatie die alleen van toepassing is op één gebeurtenis, wordt geretourneerd als XML. Een paar controlebare acties bevatten dit soort informatie. Eén niveau van de T-SQL-stack wordt weergegeven in XML-formaat voor acties die een T-SQL-stack hebben gekoppeld. Het XML-formaat is: <tsql_stack><frame nest_level = '%u' database_name = '%.*s' schema_name = '%.*s' object_name = '%.*s' /></tsql_stack>frame nest_level geeft het huidige nestniveau van het frame aan. De naam van de module wordt weergegeven in een driedelige vorm (database_name, schema_name, en object_name). De modulenaam wordt geparseerd om ongeldige XML-tekens zoals <, >, /, , _xte vermijden. Ze zijn ontsnapt als _xHHHH_. De staat HHHH voor de viercijferige hexadecimale UCS-2-code voor het teken. Nullable. Komt terug NULL wanneer er geen aanvullende informatie door het evenement wordt gemeld. |
file_name |
varchar(260) | Het pad en de naam van het auditlogboekbestand waaruit de record afkomstig is. Niet nullwaarde. |
audit_file_offset |
bigint | De bufferverschil in het bestand dat de controlerecord bevat. Niet nullwaarde. |
user_defined_event_id |
smallint | Door de gebruiker gedefinieerde event ID werd als argument doorgegeven aan sp_audit_write.
NULL voor systeemgebeurtenissen (standaard) en niet-nul voor door de gebruiker gedefinieerde gebeurtenis. Zie sp_audit_write (Transact-SQL) voor meer informatie. |
user_defined_information |
nvarchar(4000) | Wordt gebruikt om extra informatie vast te leggen die de gebruiker wil opnemen in het auditlogboek met behulp van de sp_audit_write opgeslagen procedure. |
audit_schema_version |
int | Altijd 1. |
sequence_group_id |
varbinary | Unieke identificatie.< |
transaction_id |
bigint | Unieke identificatie om meerdere auditgebeurtenissen in één transactie te identificeren. |
client_ip |
nvarchar(128) | Bron-IP van de clientapplicatie. |
application_name |
nvarchar(128) | Naam van de clientapplicatie die de verklaring uitvoerde die het auditevent veroorzaakte. |
duration_milliseconds |
bigint | Query-uitvoeringsduur in milliseconden. |
response_rows |
bigint | Aantal rijen werd teruggegeven in de resultaatset.< |
affected_rows |
bigint | Aantal rijen dat door de uitgevoerde verklaring wordt beïnvloed. |
connection_id |
uniqueidentifier | ID van de verbinding in de server. |
data_sensitivity_information |
nvarchar(4000) | Informatietypen en vertrouwelijkheidslabels die worden geretourneerd door de gecontroleerde query, op basis van de geclassificeerde kolommen in de database. Lees meer over Azure SQL Database data discover and classification. |
host_name |
nvarchar(128) | Hostnaam van de clientmachine. |
session_context |
nvarchar(4000) | De sleutel-waardeparen die deel uitmaken van de huidige sessiecontext. |
client_tls_version |
bigint | Minimale TLS-versie die door de client wordt ondersteund. |
client_tls_version_name |
nvarchar(128) | Minimale TLS-versie die door de client wordt ondersteund. |
database_transaction_id |
bigint | Transactie-ID van de huidige transactie in de huidige sessie. |
ledger_start_sequence_number |
bigint | Het volgnummer van een bewerking binnen een transactie die een rijversie creëerde. |
external_policy_permissions_checked |
nvarchar(4000) | Informatie met betrekking tot de controle van externe autorisatiemachtigingen, wanneer een auditgebeurtenis wordt gegenereerd, en Purview externe autorisatiebeleid worden geëvalueerd. |
obo_middle_tier_app_id |
Varchar(120) | De applicatie-ID van de middle tier applicatie die verbinding maakt via on-behalf-of (OBO) toegang. Nullable. Komt terug NULL als het verzoek niet via OBO-toegang wordt gedaan. |
is_local_secondary_replica |
bit |
True als het auditrecord afkomstig is van een alleen-leesbare lokale secundaire replica, False anders. |
Verbeteringen ten opzichte van sys.fn_get_audit_file
De sys.fn_get_audit_file_v2 functie biedt een aanzienlijke verbetering ten opzichte van de oudere sys.fn_get_audit_file door efficiënte tijdgebaseerde filtering te introduceren op zowel bestands- als recordniveau. Deze optimalisatie is vooral nuttig voor zoekopdrachten die zich richten op kleinere tijdsintervallen en kan helpen de prestaties te behouden in multidatabaseomgevingen.
Dual-level filtering
Filtering op bestandsniveau: De functie filtert eerst de bestanden op basis van het opgegeven tijdsbereik, waardoor het aantal bestanden dat gescand moet worden vermindert.
Record-niveau filtering: Vervolgens past het filtering toe binnen de geselecteerde bestanden om alleen de relevante records te extraheren.
Prestatieverbeteringen
De prestatieverbeteringen zijn voornamelijk afhankelijk van de rollover-tijd van de blobbestanden en het geraadpleegde tijdsbereik. Uitgaande van een uniforme verdeling van auditgegevens:
Verminderde belasting: Door het aantal bestanden en records om te scannen te minimaliseren, vermindert het de belasting op het systeem en verbetert het de responstijden van zoekopdrachten.
Schaalbaarheid: Helpt de prestaties te behouden, zelfs als het aantal databases toeneemt, hoewel de netto verbetering minder uitgesproken kan zijn in omgevingen met veel databases.
Opmerkingen
Als het file_pattern-argument dat wordt doorgegeven naar fn_get_audit_file_v2 een pad of bestand verwijst dat niet bestaat, of als het bestand geen auditbestand is, wordt het MSG_INVALID_AUDIT_FILE foutbericht teruggegeven.
De fn_get_audit_file_v2 functie kan niet worden gebruikt wanneer de audit wordt aangemaakt met de APPLICATION_LOG, SECURITY_LOG, of EXTERNAL_MONITOR opties.
Momenteel kun je in Fabric Data Warehouse geen toegang krijgen tot individuele bestanden, alleen tot de auditmap. De volgende argumenten worden niet ondersteund voor SQL Audit op een magazijnitem: file_pattern, initial_file_name, audit_record_offset.
Permissions
Benodigde permissies in Azure SQL Database
Hiervoor is de CONTROL DATABASE machtiging vereist.
Serverbeheerders kunnen toegang krijgen tot auditlogs van alle databases op de server.
Niet-serverbeheerders kunnen alleen toegang krijgen tot auditlogs uit de huidige database.
Blobs die niet aan bovenstaande criteria voldoen, worden overgeslagen (een lijst van overgeslagen blobs wordt weergegeven in het query-uitvoerbericht). De functie levert logs alleen terug van blobs waarvoor toegang is toegestaan.
Benodigde permissies in de Fabric SQL-database
Om auditing te beheren met Fabric-workspace-rollen, moeten gebruikers lidmaatschap hebben van de Fabric workspace Contributor-rol of hogere rechten. Controle beheren met SQL-machtigingen:
- Als u de databasecontrole wilt configureren, moeten gebruikers de machtiging ALTER ANY DATABASE AUDIT hebben.
- Als u auditlogboeken wilt weergeven met T-SQL, moeten gebruikers de machtiging VIEW DATABASE SECURITY AUDIT hebben.
Voor meer informatie, zie Auditing in Fabric SQL-database.
Benodigde permissies in Fabric Data Warehouse
Gebruikers moeten de Fabric-item-toestemming Audit hebben. Zie Machtigingen voor meer informatie.
Voorbeelden
Eén. View SQL audit logs for Azure SQL Database
Dit voorbeeld haalt auditlogs op van een specifieke Azure Blob Storage-locatie, waarbij records worden gefilterd tussen 2023-11-17T08:40:40Z en 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. Bekijk SQL-auditlogs voor Fabric Data Warehouse
Dit voorbeeld haalt auditlogs op uit de OneLake-map die zijn uitgelijnd met de huidige werkruimte en het warehouse, waarbij records worden gefilterd tussen 2023-11-17T08:40:40Z en 2023-11-17T09:10:40Z.
In het Fabric-portaal haal je workspaceID en warehouseIDop:
-
<workspaceID>: Bezoek je werkruimte in het Fabric-portaal. Zoek de workspace-GUID in de URL na de/groups/sectie, of door te draaienSELECT @@SERVERNAMEin een bestaand warehouse. Als je/groups/URL wordt gevolgd door/me/, gebruik je de standaard werkruimte, en momenteel wordt SQL Audit for Fabric Data Warehouse niet ondersteund in de standaard werkruimte. -
<warehouseID>: Bezoek je magazijn in het Stofportaal. Zoek de warehouse-ID in de URL na de/warehouses/sectie.
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. Bekijk SQL-auditlogs voor SQL-databases in Microsoft Fabric
Dit voorbeeld haalt auditlogs op van OneLake in Microsoft Fabric, tussen 2025-11-17T08:40:40Z en 2025-11-17T09:10:40Z.
In het volgende script moet je je Microsoft Fabric workspace-ID en database-ID opgeven. Beide zijn te vinden via de URL van het Fabric-portaal. Voorbeeld: https://fabric.microsoft.com/groups/<fabric workspace id>/sqldatabases/<fabric sql database id>. De eerste unieke identifier-string in de URL is de Fabric workspace ID, en de tweede unieke identifier-string is de SQL-database-ID.
- Vervang
<fabric_workspace_id>door de ID van uw Fabric-werkruimte. U kunt de id van een werkruimte gemakkelijk vinden in de URL. Dit is de unieke tekenreeks binnen twee/tekens na/groups/in uw browservenster. - Vervang
<fabric sql database id>door uw SQL-database in Fabric-database-ID. U kunt de id van het database-item gemakkelijk vinden in de URL. Dit is de unieke tekenreeks binnen twee/tekens na/sqldatabases/in uw browservenster.
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')
Meer informatie
Systeemcatalogusweergaven:
- 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:
- MAAK SERVERAUDIT (Transact-SQL)
- ALTER SERVER AUDIT (Transact-SQL)
- DROP SERVERAUDIT (Transact-SQL)
- SERVERCONTROLESPECIFICATIE (Transact-SQL) maken
- ALTER SERVER AUDIT-SPECIFICATIE (Transact-SQL)
- DROP SERVER AUDIT-SPECIFICATIE (Transact-SQL)
- DATABASECONTROLESPECIFICATIE (Transact-SQL) maken
- ALTER DATABASE AUDIT-SPECIFICATIE (Transact-SQL)
- DATABASECONTROLESPECIFICATIE (Transact-SQL)
- ALTER AUTORISATIE (Transact-SQL)
Verwante inhoud
- een servercontrole- en servercontrolespecificatie maken
- 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)
- Begin met SQL Database Auditing
- SQL Auditlogs in Fabric Data Warehouse