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


sys.fn_get_audit_file (Transact-SQL)

A következőkre vonatkozik:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsSQL-adatbázis a Microsoft Fabricben

Egy SQL Server-naplózás által létrehozott auditfájlból származó információkat ad vissza. További információ: SQL Server Audit (Adatbázismotor).

Jótanács

Fontold meg, hogy inkább sys.fn_get_audit_file_v2 használd. A sys.fn_get_audit_file_v2 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.

Jótanács

A Fabric Data Warehouse sys.fn_get_audit_file esetében támogatott, de sys.fn_get_audit_file_v2 (Transact-SQL) ajánlott. A sys.fn_get_audit_file_v2 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. További információkért és példákért lásd: Auditing konfigurálása a Fabric Data Warehouse-ban.

Jótanács

Az SQL adatbázis Fabric-ben sys.fn_get_audit_file támogatott, de sys.fn_get_audit_file_v2 (Transact-SQL) ajánlott. A sys.fn_get_audit_file_v2 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. További információkért és példákért lásd: Auditálás konfigurálása a Fabric SQL adatbázisban.

Transact-SQL szintaxis konvenciók

Szemantika

fn_get_audit_file ( file_pattern ,
    { default | initial_file_name | NULL } ,
    { default | audit_record_offset | NULL } )

Érvek

file_pattern

Megadja az olvasni kívánt naplózási fájlkészlet könyvtárát vagy elérési útját és fájlnevét. A típus nvarchar(260).

Ha egy elérési utat fájlnévminta nélkül ad át, az hibát okoz.

Ennek az argumentumnak tartalmaznia kell egy elérési utat (meghajtóbetűjelet vagy hálózati megosztást) és egy olyan fájlnevet, amely tartalmazhat helyettesítő karaktereket. Egyetlen csillag (*) használatával több fájlt is összegyűjthet egy auditfájlkészletből. Például:

  • \<path>\* – Gyűjtse össze az összes auditfájlt a megadott helyen.

  • <path>\LoginsAudit_{GUID}* – Gyűjtse össze a megadott névvel és GUID-párlal rendelkező összes auditfájlt.

  • <path>\LoginsAudit_{GUID}_00_29384.sqlaudit - Gyűjtsön össze egy adott auditfájlt.

initial_file_name

Egy adott fájl elérési útját és nevét adja meg a naplózási fájlkészletben a naplórekordok olvasásának megkezdéséhez. A típus nvarchar(260).

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

audit_record_offset

Egy ismert helyet ad meg a initial_file_name megadott fájllal. Ha ezt az argumentumot használja, a függvény a puffer első rekordján kezdi az olvasást közvetlenül a megadott eltolás után.

A audit_record_offset argumentumnak érvényes bejegyzéseket kell tartalmaznia, vagy tartalmaznia kell az értéket vagy default az NULL értéket. A típus nagy.

Visszaadott táblák

Az alábbi táblázat a függvény által visszaadható naplózási fájltartalmat ismerteti.

Oszlop név Típus Leírás
event_time datetime2 A naplózható művelet aktiválásának UTC-dátuma és időpontja. Nem nullázható.
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ázható.
action_id varchar(4) A művelet azonosítója. Nem nullázható.
succeeded bit Azt jelzi, hogy az eseményt kiváltó művelet sikeres volt-e. Nem nullázható. 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 varbináris(16) Egyes műveletekben ez a bitmaszk a megadott, elutasított vagy visszavont engedélyek.
is_column_permission bit Jelző, amely jelzi, hogy ez oszlopszintű engedély-e. Nem nullázható. Akkor adja 0 vissza, ha apermission_bitmask = 0 .

1 = igaz
0 = hamis
session_id kisméretű Annak a munkamenetnek az azonosítója, amelyen az esemény történt. Nem nullázható.
server_principal_id Int A műveletet végrehajtó bejelentkezési környezet azonosítója. Nem nullázható.
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ázható. Visszaadja 0 , ha ez nem érvényes. Például egy kiszolgálóművelet.
target_server_principal_id Int Kiszolgálónév, amelyen a GRANT/DENY/REVOKE műveletet végrehajtják. Nem nullázható. Visszaadja 0 , ha nem alkalmazható.
target_database_principal_id Int Azon adatbázisnév, amelyen a GRANT/DENY/REVOKE műveletet végrehajtja. Nem nullázható. Visszaadja 0 , ha nem alkalmazható.
object_id Int Annak az entitásnak az azonosítója, amelyen a naplózás történt, amely a következő objektumokat tartalmazza:

- Kiszolgálóobjektumok
-Adatbázisok
- Adatbázis-objektumok
- Sémaobjektumok

Nem nullázható. Visszaadja 0 , ha az entitás maga a kiszolgáló, vagy ha a naplózás nem objektumszinten 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ázható.
session_server_principal_name sysname Kiszolgálónév munkamenethez. Nullázható. Az adatbázismotor példányához csatlakoztatott eredeti bejelentkezés identitását adja vissza, ha explicit vagy implicit környezeti kapcsolók voltak.
server_principal_name sysname Aktuális bejelentkezés. Nullázható.
server_principal_sid varbináris Jelenlegi bejelentkezési biztonsági azonosító (SID). Nullázható.
database_principal_name sysname Jelenlegi felhasználó. Nullázható. Visszaadja, NULL ha nem érhető el.
target_server_principal_name sysname A művelet célba történő bejelentkezése. Nullázható. Visszaadja NULL , ha nem alkalmazható.
target_server_principal_sid varbináris A célzott bejelentkezés biztonsági azonosítója. Nullázható. Visszaadja NULL , ha nem alkalmazható.
target_database_principal_name sysname A művelet célfelhasználója. Nullázható. Visszaadja NULL , ha nem alkalmazható.
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álja a rendszer.
database_name sysname Az adatbázis-környezet, amelyben a művelet történt. Nullázható. NULL A kiszolgáló szintjén végzett naplózások eredménye.
schema_name sysname A sémakörnyezet, amelyben a művelet történt. Nullázható. NULL A sémán kívüli naplózások eredménye.
object_name sysname Annak az entitásnak a neve, amelyen a naplózás történt, amely a következő objektumokat tartalmazza:

- Kiszolgálóobjektumok
-Adatbázisok
- Adatbázis-objektumok
- Sémaobjektumok

Nullázható. Visszaadja NULL , ha az entitás maga a kiszolgáló, vagy ha a naplózás nem objektumszinten történik. Például hitelesítés.
statement nvarchar(4000) Transact-SQL utasítást, ha létezik. Nullázható. Visszaadja NULL , ha nem alkalmazható.
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-verem egy szintje XML formátumban jelenik meg azokhoz a műveletekhez, amelyekhez T-SQL-verem van társítva. 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 beágyazási szintjét jelzi. A modul neve három részformátumban (database_nameés schema_nameobject_name) jelenik meg. A modul neve úgy van elemezve, hogy elkerülje az olyan érvénytelen XML-karaktereket, mint a <, >, /_x. Úgy szöktek meg, mint _xHHHH_. A HHHH karakter négyjegyű hexadecimális UCS-2 kódját jelöli. Nullázható. Akkor adja NULL vissza, ha az esemény nem tartalmaz 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ázható.
audit_file_offset bigint A naplózási rekordot tartalmazó fájl puffereltolása. Nem nullázható.

Csak az SQL Serverre vonatkozik
user_defined_event_id kisméretű A felhasználó által megadott eseményazonosító argumentumként lett átadva a következőnek sp_audit_write: . NULL a rendszeresemények (alapértelmezett) és a felhasználó által definiált események esetében nem nulla. További információ: sp_audit_write.

A következőkre vonatkozik: SQL Server 2012 (11.x) és újabb verziók, Azure SQL Database és felügyelt SQL-példány
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.

A következőkre vonatkozik: SQL Server 2012 (11.x) és újabb verziók, Azure SQL Database és felügyelt SQL-példány
audit_schema_version Int Mindig 1.
sequence_group_id varbináris Egyedi azonosító.

: SQL Server 2016 (13.x) és újabb verziók
transaction_id bigint Egyedi azonosító több auditesemény azonosításához egy tranzakcióban.

: SQL Server 2016 (13.x) és újabb verziók
client_ip Nvarchar(128) Az ügyfélalkalmazás forrás IP-címe.

Az: SQL Server 2017 (14.x) és újabb verziók, valamint az Azure SQL Database
application_name Nvarchar(128) A naplózási eseményt okozó utasítást végrehajtó ügyfélalkalmazás neve.

Az: SQL Server 2017 (14.x) és újabb verziók, valamint az Azure SQL Database
duration_milliseconds bigint A lekérdezés végrehajtásának időtartama ezredmásodpercben.

A következőkre vonatkozik: Azure SQL Database és felügyelt SQL-példány
response_rows bigint Az eredményhalmazban visszaadott sorok száma.

A következőkre vonatkozik: Azure SQL Database és felügyelt SQL-példány
affected_rows bigint A végrehajtott utasítás által érintett sorok száma.

Csak az Azure SQL Database-re vonatkozik
connection_id uniqueidentifier A kiszolgáló kapcsolatának azonosítója.

A következőkre vonatkozik: Azure SQL Database és felügyelt SQL-példány
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. További információ az Azure SQL Database-adatok felderítéséről és besorolásáról.

Csak az Azure SQL Database-re vonatkozik
host_name Nvarchar(128) Az ügyfélszámítógép állomásneve.
session_context nvarchar(4000) Az aktuális munkamenet-környezet részét képező kulcs-érték párok.
client_tls_version bigint Az ügyfél által támogatott minimális TLS-verzió.
client_tls_version_name Nvarchar(128) Az ügyfél által támogatott minimális TLS-verzió.
database_transaction_id bigint Az aktuális tranzakció tranzakcióazonosítója az aktuális munkamenetben.
ledger_start_sequence_number bigint Egy sorverziót létrehozó tranzakción belüli művelet sorszáma.

A következőkre vonatkozik: Csak Azure SQL Database
external_policy_permissions_checked nvarchar(4000) A külső engedélyezési engedély ellenőrzésével, a naplózási esemény generálásakor és a Purview külső engedélyezési szabályzatainak kiértékelésével kapcsolatos információk.

A következőkre vonatkozik: Csak Azure SQL Database
obo_middle_tier_app_id varchar(120) A középső rétegbeli alkalmazás alkalmazásazonosítója, amely az Azure SQL Database-hez csatlakozik helyszíni (OBO) hozzáféréssel. Nullázható. Visszaadja NULL , ha a kérés nem OBO-hozzáféréssel történik.

Csak az Azure SQL Database-re vonatkozik
is_local_secondary_replica bit True ha a naplózási rekord írásvédett helyi másodlagos replikából származik, False ellenkező esetben.

A következőkre vonatkozik: Csak Azure SQL Database

Megjegyzések

  • Ha a file_pattern argumentum fn_get_audit_file nem létező elérési útra vagy fájlra hivatkozik, vagy ha a fájl nem auditfájl, a MSG_INVALID_AUDIT_FILE hibaüzenet jelenik meg.

  • fn_get_audit_file nem használható, ha a naplózás a APPLICATION_LOG, SECURITY_LOGvagy EXTERNAL_MONITOR a beállításokkal jön létre.

Engedélyek

Az SQL Server 2019 (15.x) és a korábbi verziók CONTROL SERVER engedélyt igényelnek a kiszolgálón.

Az SQL Server 2022 (16.x) és újabb verziói VIEW SERVER SECURITY AUDIT engedélyt igényelnek a kiszolgálón.

Példák

Ez a példa egy elnevezett \\serverName\Audit\HIPAA_AUDIT.sqlauditfájlból olvas be.

SELECT *
FROM sys.fn_get_audit_file(
    '\\serverName\Audit\HIPAA_AUDIT.sqlaudit',
    DEFAULT,
    DEFAULT
);
GO

A naplózás létrehozásának teljes példáját az SQL Server audit (adatbázismotor) című témakörben találhatja meg.

Korlátozások

Sorok kijelölése a Create Table As Select (CTAS) szolgáltatásban sys.fn_get_audit_file , vagy INSERT INTO az Azure Synapse Analyticsben való futtatás korlátozása. Bár a lekérdezés sikeresen befejeződött, és nem jelennek meg hibaüzenetek, a CTAS vagy INSERT INTOa .

További információ

Rendszerkatalógus-nézetek:

Transact-SQL: