Megosztás a következőn keresztül:


sys.fn_get_audit_file_v2 (Transact-SQL)

Vonatkozik a következőkre:Azure SQL DatabaseRaktár a Microsoft Fabric-benSQL adatbázis a Microsoft Fabric-ben

A sys.fn_get_audit_file_v2 rendszer funkciója arra szolgál, hogy az audit napló adatait jobb hatékonysággal lehessen szerezni elődjéhez képest. sys.fn_get_audit_file A funkció időalapú szűrést vezet be mind a fájl, mind a rekord szintjén, jelentős teljesítményjavulást biztosítva, különösen olyan lekérdezéseknél, amelyek meghatározott időtartományokat céloznak.

Visszaadja az adatokat egy szerveraudit által létrehozott auditfájlból. További információ: SQL Server Audit (Adatbázismotor).

Transact-SQL szintaxis konvenciók

Szemantika

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

Vonatkozik a következőkre: Azure SQL Database only

Megadja a könyvtárat, útvonalat és fájlnevet az audit fájl beállításához, amelyet olvasni kell. file_patternnvarchar(260).

Ha fájlnév mintázat nélkül haladunk át, hiba keletkezik.

Ezt az érvet egy blob URL-t (beleértve a tároló végpontot és a konténert is) meghatározására használják. Bár nem támogatja a csillagjelölt wildcardot, használhatsz részleges fájl (blob) név előtagot (a teljes folb név helyett), hogy több fájlt (blob) gyűjts, amelyek ezzel az előtaggal kezdődnek. Például:

  • <Storage_endpoint>/<Container>/<ServerName>/<DatabaseName>/ - összegyűjti az adott adatbázis összes audit fájlját (foltját).

  • <Storage_endpoint>/<Container>/<ServerName>/<DatabaseName>/<AuditName>/<CreationDate>/<FileName>.xel - egy adott audit fájlt (blob) gyűjt.

initial_file_name

Vonatkozik a következőkre: Azure SQL Database only

Megadja egy adott fájl útját és nevét abban az auditfájl-beállításban, ahonnan elkezdhetjük az audit rekordok olvasását. initial_file_namenvarchar(260).

Az initial_file_name érvnek érvényes bejegyzéseket kell tartalmaznia, vagy vagy az default vagy NULL értéket.

audit_record_offset

Vonatkozik a következőkre: Azure SQL Database only

Megad egy ismert helyet a initial_file_name fájljával. Amikor ezt az argumentust használják, a függvény a puffer első rekordjánál kezd el olvasni, közvetlenül a megadott eltolás után.

Az audit_record_offset érvnek érvényes elemeket kell tartalmaznia, vagy vagy az default or NULL értéket. audit_record_offsetnagy.

start_time

A naplók szűrésének kezdeti ideje. Az ezt megelőző rekordokat kizárják.

end_time

A naplók szűrésének végideje. Az ezt követő rekordokat kizárják.

Visszaadott tábla

Az alábbi táblázat bemutatja az audit fájl tartalmát, amelyet ez a függvény adott vissza.

Oszlop név Típus Description
event_time datetime2 A naplózható művelet aktiválásának dátuma és időpontja. Nem null értékű.
sequence_number int Nyomon követi egy olyan naplórekord rekordjainak sorrendjét, amelyek túl nagyok ahhoz, hogy elférjenek az auditok írási pufferében. Nem null értékű.
action_id varchar(4) Az akció azonosítója. Nem null értékű.
succeeded bit Azt jelzi, hogy az eseményt kiváltó művelet sikeres volt-e. Nem null értékű. A bejelentkezési eseményeken kívül minden esemény esetében ez csak azt jelenti, hogy az engedély-ellenőrzés sikeres volt vagy sikertelen volt, nem pedig a művelet.

1 = siker
0 = sikertelen
permission_bitmask varbinary(16) Bizonyos cselekedetekben ez a bitmask az engedélyek megítélése, elutasítása vagy visszavonása volt.
is_column_permission bit Jelző, amely jelzi, hogy ez oszlopszintű engedély-e. Nem null értékű. Visszatér0, amikor apermission_bitmask = 0 .

1 = igaz
0 = hamis
session_id smallint Annak a munkamenetnek az azonosítója, amelyen az esemény történt. Nem null értékű.
server_principal_id int A műveletet végrehajtó bejelentkezési környezet azonosítója. Nem null értékű.
database_principal_id int Annak az adatbázis-felhasználói környezetnek az azonosítója, amelyben a műveletet végrehajtják. Nem null értékű. Visszaküldés 0 , ha ez nem vonatkozik. Például egy kiszolgálóművelet.
target_server_principal_id int Szerver alapvetménye, amelyen a GRANT/DENY/REVOKE művelet történik. Nem null értékű. A bevallások 0 , ha nem alkalmazhatók.
target_database_principal_id int Az adatbázis alapalap, amelyen a GRANT/DENY/REVOKE művelet történik. Nem null értékű. A bevallások 0 , ha nem alkalmazhatók.
object_id int Az audit végrehajtott entitás azonosítója, amely magában foglalja az alábbi objektumokat:

- Szerverobjektumok
-Adatbázisok
- Adatbázis objektumok
- Séma objektumok

Nem null értékű. Akkor jelenik 0 meg, ha az entitás maga a szerver, vagy ha az audit nem tárgy szinten történik. Például hitelesítés.
class_type varchar(2) A naplózható entitás típusa, amelyen a naplózás történik. Nem null értékű.
session_server_principal_name sysname Szerver alapvetél a sessionhez. Nullable. Visszaadja az eredeti bejelentkezés identitását, amely az adatbázis motorhoz volt csatlakoztatva, arra az esetre, ha explicit vagy implicit kontextusváltások voltak.
server_principal_name sysname Aktuális bejelentkezés. Nullable.
server_principal_sid varbinary Jelenlegi bejelentkezési SID. Nullable.
database_principal_name sysname Jelenlegi felhasználó. Nullable. A visszaküldés NULL , ha nem elérhető.
target_server_principal_name sysname Cél bejelentkezés a cselekvéshez. Nullable. A bevallások NULL , ha nem alkalmazhatók.
target_server_principal_sid varbinary A cél bejelentkezés SID-je. Nullable. A bevallások NULL , ha nem alkalmazhatók.
target_database_principal_name sysname Célzott célú felhasználó a cselekvés során. Nullable. A bevallások NULL , ha nem alkalmazhatók.
server_instance_name sysname Annak a kiszolgálópéldánynak a neve, ahol a naplózás történt. A szabványos server\instance formátumot használják.
database_name sysname Az adatbázis-környezet, amelyben a művelet történt. Nullable. A szerver szintjén végzett auditok visszajelzései NULL .
schema_name sysname A sémakörnyezet, amelyben a művelet történt. Nullable. A sémán kívüli auditok bevallása NULL .
object_name sysname Az ellenség neve, amelyen az audit történt, amely magában foglalja a következő objektumokat:

- Szerverobjektumok
-Adatbázisok
- Adatbázis objektumok
- Séma objektumok

Nullable. Akkor jelenik NULL meg, ha az entitás maga a szerver, vagy ha az audit nem tárgy szinten történik. Például hitelesítés.
statement nvarchar(4000) Transact-SQL állítás, ha létezik. Nullable. A bevallások NULL , ha nem alkalmazhatók.
additional_information nvarchar(4000) A rendszer csak egyetlen eseményre vonatkozó egyedi információkat ad vissza XML-fájlként. Néhány naplózható művelet ilyen jellegű információkat tartalmaz.

A T-SQL stack egyik szintje XML formátumban jelenik meg olyan műveletek esetén, amelyekhez T-SQL stack van hozzárendelve. Az XML formátum a következő: <tsql_stack><frame nest_level = '%u' database_name = '%.*s' schema_name = '%.*s' object_name = '%.*s' /></tsql_stack>

frame nest_level a keret aktuális fészkelési szintjét jelzi. A modul neve három részből álló formátumban van ábrázolva (database_name, schema_name, és object_name). A modul nevét úgy parzálják, hogy kiszabaduljon az érvénytelen XML karakterekből, mint <például , , >/, _x. Megszöknek a _xHHHH_. Ez HHHH a négyjegyű hatleveles UCS-2 kódot jelöli. Nullable. Akkor tér vissza NULL , ha az esemény nem jelent további információt.
file_name varchar(260) Annak a naplófájlnak az elérési útja és neve, amelyből a rekord származik. Nem null értékű.
audit_file_offset bigint A naplózási rekordot tartalmazó fájl puffereltolása. Nem null értékű.
user_defined_event_id smallint Felhasználó által definiált eseményazonosító argumentumként továbbított .sp_audit_write NULL rendszereseményekhez (alapértelmezett) és nem nulla a felhasználó által definiált eseményre. További információ: sp_audit_write (Transact-SQL).
user_defined_information nvarchar(4000) A felhasználó által a naplóban rögzíteni kívánt további információk rögzítésére szolgál a sp_audit_write tárolt eljárással.
audit_schema_version int Mindig 1.
sequence_group_id varbinary Egyedi azonosító.<
transaction_id bigint Egyedi azonosító több audit esemény azonosítására egyetlen tranzakcióban.
client_ip nvarchar(128) Az ügyfélalkalmazás forrás IP-címe.
application_name nvarchar(128) Az ügyfélalkalmazás neve, amely végrehajtotta azt a kijelentést, amely az audit eseményt okozta.
duration_milliseconds bigint A lekérdezés végrehajtási időtartama milliszekundumokban.
response_rows bigint Az eredményhalmazban vissza hozott sorok száma.<
affected_rows bigint A végrehajtott utasítás által érintett sorok száma.
connection_id uniqueidentifier A szerveren lévő kapcsolat azonosítója.
data_sensitivity_information nvarchar(4000) A naplózott lekérdezés által visszaadott információtípusok és bizalmassági címkék az adatbázis besorolt oszlopai alapján. Tudjon meg többet az Azure SQL Database adatfeltárásáról és osztályozásáról.
host_name nvarchar(128) Az ügyfélgép hoszt neve.
session_context nvarchar(4000) A kulcs-érték párok, amelyek a jelenlegi session kontextusának részei.
client_tls_version bigint Minimum TLS verzió, amelyet az ügyfél támogat.
client_tls_version_name nvarchar(128) Minimum TLS verzió, amelyet az ügyfél támogat.
database_transaction_id bigint A jelenlegi tranzakció azonosítója a jelenlegi ülésen.
ledger_start_sequence_number bigint Egy művelet sorszáma egy tranzakción belül, amely sorverziót hozott létre.
external_policy_permissions_checked nvarchar(4000) Értékelik a külső engedélyezési engedélyellenőrzéshez kapcsolódó információkat, mikor generálnak egy auditeseményt, valamint a Purview külső hitelesítési szabályzatait.
obo_middle_tier_app_id varchar(120) A középső szintű alkalmazás alkalmazásazonosítója, amely on-bany (OBO) hozzáféréssel csatlakozik. Nullable. Visszaküldik NULL , ha a kérés nem OBO hozzáféréssel történik.
is_local_secondary_replica bit True ha az audit rekordja egy csak olvasható helyi másodlagos replikáról származik, False különben

Fejlesztések sys.fn_get_audit_file

A sys.fn_get_audit_file_v2 funkció jelentős javulást kínál a régebbihez sys.fn_get_audit_file képest azzal , hogy hatékony időalapú szűrést vezet be mind a fájl, mind a rekord szintjén. Ez az optimalizáció különösen hasznos olyan lekérdezéseknél, amelyek kisebb időtávolságokat céloznak, és segíthet fenntartani a teljesítményt több adatbázisos környezetben.

Kettős szintű szűrés

Fájlszintű szűrés: A függvény először a megadott időtartomány alapján szűri a fájlokat, csökkentve a szkennelendő fájlok számát.

Rekordszintű szűrés: Ezután a kiválasztott fájlokban történő szűrést alkalmaz, hogy csak a releváns rekordokat nyerje ki.

Teljesítménybeli fejlesztések

A teljesítmény javulása elsősorban a blob fájlok felállási idejétől és a lekérdezett időtartománytól függ. Feltételezve, hogy az audit nyilvántartások egységes eloszlása:

  • Csökkentett terhelés: A fájlok és rekordok mennyiségének minimalizálásával csökkenti a rendszer terhelését és javítja a lekérdezési válaszidőt.

  • Skálázhatóság: Segít fenntartani a teljesítményt még az adatbázisok száma növekszik is, bár a nettó javulás kevésbé lehet olyan környezetekben, ahol sok adatbázis van.

Megjegyzések

Ha a file_pattern argumentum fn_get_audit_file_v2 egy nem létező útra vagy fájlra utal, vagy ha a fájl nem audit fájl, akkor a MSG_INVALID_AUDIT_FILE hibaüzenet visszakerül.

A fn_get_audit_file_v2 függvény nem használható, ha az auditot , APPLICATION_LOGSECURITY_LOG, vagy EXTERNAL_MONITOR opciókkal hozzuk létre.

Jelenleg a Fabric Data Warehouse-ban nem lehet hozzáférni az egyes fájlokhoz, csak az audit mappához. Az alábbi érvek nem támogatottak az SQL Audit esetén egy raktári tárgyon: file_pattern, initial_file_name, audit_record_offset.

Permissions

Permissions required in Azure SQL Database

A CONTROL DATABASE engedélyre van szükség.

  • A szerveradminek hozzáférhetnek a szerver összes adatbázisának audit naplójához.

  • A nem szerveradminisztrátorok csak a jelenlegi adatbázisból érhetnek hozzáférést audit naplókhoz.

  • Azok a foltok, amelyek nem felelnek meg a fenti kritériumoknak, kihagyják (a lekérdezés kimeneti üzenetében megjelenik a kihagyott foltok listája). A függvény csak olyan blokkokból ad vissza naplókat, amelyekhez hozzáférés engedélyezett.

A Fabric SQL adatbázisban szükséges jogosultságok

Ahhoz, hogy a Fabric workspace szerepekkel történő auditálást kezeljenek, a felhasználóknak tagsággal kell rendelkezniük a Fabric workspace Contributor szerepben vagy magasabb jogosultsággal. A naplózás kezelése SQL-engedélyekkel:

  • Az adatbázis-naplózás konfigurálásához a felhasználóknak alter ANY DATABASE AUDIT engedéllyel kell rendelkezniük.
  • A naplók T-SQL használatával való megtekintéséhez a felhasználóknak rendelkezniük kell a VIEW DATABASE SECURITY AUDIT engedéllyel.

További információért lásd: Auditing in Fabric SQL adatbázisban.

Szükséges jogosultságok a Fabric Data Warehouse-ban

A felhasználóknak rendelkezniük kell a Fabric item Audit engedélyével. További információ: Engedélyek.

Példák

A. View SQL audit logs for Azure SQL Database

Ez a példa egy adott Azure Blob Storage helyszínről származó audit naplókat kér, és a rekordokat szűri és 2023-11-17T08:40:40Z2023-11-17T09:10:40Zközött.

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. View SQL audit logs for Fabric Data Warehouse

Ez a példa az aktuális munkaterülethez és raktárhoz igazított OneLake mappából származó audit naplókat tölti le, és a rekordokat szűrve és 2023-11-17T08:40:40Z2023-11-17T09:10:40Zközött.

A Fabric portálban kérd meg a workspaceID saját és warehouseID:

  • <workspaceID>: Látogass meg a munkaterületedre a Fabric portálban. A munkaterület GUID-jét a szakasz utáni URL-ben /groups/ keressd meg, vagy egy meglévő raktárban futtad SELECT @@SERVERNAME . Ha /groups/ az URL-ed után /me/, akkor az alapértelmezett munkaterületet használod, és jelenleg az alapértelmezett munkaterületen az SQL Audit for Fabric Data Warehouse nem támogatott.
  • <warehouseID>: Látogass el raktáradhoz a Fabric portálon. Keresd meg a raktárazonosítót a szakasz utáni URL-ben /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. SQL adatbázis SQL audit logjait tekintse a Microsoft Fabric-ben

Ez a példa a OneLake-ből származó audit naplókat a Microsoft Fabric-ben és között 2025-11-17T08:40:40Z2025-11-17T09:10:40Ztölti be.

A következő szkriptben megadnod kell a Microsoft Fabric munkaterületi azonosítóját és adatbázis-azonosítódat. Mindkettő megtalálható a Fabric portál URL-jén. Például: https://fabric.microsoft.com/groups/<fabric workspace id>/sqldatabases/<fabric sql database id>. Az URL-ben az első egyedi azonosító string a Fabric workspace ID, a második egyedi azonosító string pedig az SQL adatbázis azonosítója.

  • Cserélje le <fabric_workspace_id> a Fabric-munkaterület azonosítóját. A munkaterület azonosítóját könnyen megtalálhatja az URL-címben, ez a böngészőablakban található egyedi sztring, amely két / karakter között helyezkedik el /groups/ után.
  • Cserélje le az <fabric sql database id> elemet az SQL-adatbázisra a Fabric adatbázis-azonosítóban. Az adatbáziselem azonosítóját könnyen megtalálhatja az URL-ben; ez a böngészőablakban a / utáni, két /sqldatabases/ karakter közötti egyedi sztring.
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')

További információ

Rendszerkatalógus nézetek:

Transact-SQL: