Dela via


sys.fn_get_audit_file (Transact-SQL)

Gäller för:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse Analytics

Returnerar information från en granskningsfil som skapats av en servergranskning i SQL Server. Mer information finns i SQL Server-granskning (databasmotor).

Anmärkning

Överväg att använda sys.fn_get_audit_file_v2 i stället för Azure SQL Database. sys.fn_get_audit_file_v2 introducerar tidsbaserad filtrering på både fil- och postnivå, vilket ger betydande prestandaförbättringar, särskilt för frågor som riktar sig till specifika tidsintervall.

Transact-SQL syntaxkonventioner

Syntax

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

Argumentpunkter

file_pattern

Anger katalogen eller sökvägen och filnamnet för den granskningsfil som ska läsas. Typen är nvarchar(260).

Att skicka en sökväg utan ett filnamnsmönster genererar ett fel.

Det här argumentet måste innehålla både en sökväg (enhetsbeteckning eller nätverksresurs) och ett filnamn som kan innehålla ett jokertecken. En enda asterisk (*) kan användas för att samla in flera filer från en granskningsfiluppsättning. Till exempel:

  • \<path>\* – Samla in alla granskningsfiler på den angivna platsen.

  • <path>\LoginsAudit_{GUID}* – Samla in alla granskningsfiler som har det angivna namnet och GUID-paret.

  • <path>\LoginsAudit_{GUID}_00_29384.sqlaudit – Samla in en specifik granskningsfil.

initial_file_name

Anger sökvägen och namnet på en specifik fil i granskningsfilen som ska börja läsa granskningsposter från. Typen är nvarchar(260).

Argumentet initial_file_name måste innehålla giltiga poster eller innehålla antingen default värdet eller NULL .

audit_record_offset

Anger en känd plats med den fil som angetts för initial_file_name. När det här argumentet används börjar funktionen läsa vid den första posten i bufferten omedelbart efter den angivna förskjutningen.

Argumentet audit_record_offset måste innehålla giltiga poster eller innehålla antingen default värdet eller NULL . Typ är bigint.

Tabeller som returneras

I följande tabell beskrivs det granskningsfilinnehåll som kan returneras av den här funktionen.

Kolumnnamn Typ Beskrivning
event_time datetime2 UTC-datum och tid när den granskningsbara åtgärden utlöses. Inte nullbar.
sequence_number Int Spårar sekvensen av poster inom 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 för åtgärden. 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 = lyckades
0 = misslyckas
permission_bitmask varbinär(16) I vissa åtgärder är den här bitmasken de behörigheter som har beviljats, nekats eller återkallats.
is_column_permission bit Flagga som anger om detta är en behörighet på kolumnnivå. Inte nullbar. Returnerar 0 när permission_bitmask = 0.

1 = sant
0 = 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 Serverhuvudnamn som åtgärden GRANT/DENY/REVOKE utförs på. Inte nullbar. Returnerar 0 om det inte är tillämpligt.
target_database_principal_id Int Databasens huvudnamn som GRANT/DENY/REVOKE åtgärden utförs på. Inte nullbar. Returnerar 0 om det inte är tillämpligt.
object_id Int ID:t för den entitet där granskningen inträffade, som innehåller följande objekt:

– Serverobjekt
-Databaser
– Databasobjekt
– Schemaobjekt

Inte nullbar. Returnerar 0 om entiteten är själva servern eller om granskningen 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 Serverhuvudnamn för session. Nullbar. Returnerar identiteten för den ursprungliga inloggningen som var ansluten till instansen av databasmotorn om det fanns explicita eller implicita kontextväxlar.
server_principal_name sysname Nuvarande inloggning Nullbar.
server_principal_sid varbinary Aktuell inloggningssäkerhetsidentifierare (SID). Nullbar.
database_principal_name sysname Aktuell användare. Nullbar. Returnerar NULL om det inte är tillgängligt.
target_server_principal_name sysname Mål för inloggningsåtgärd. Nullbar. Returnerar NULL om det inte är tillämpligt.
target_server_principal_sid varbinary SID för målinloggning. Nullbar. Returnerar NULL om det inte är tillämpligt.
target_database_principal_name sysname Målanvändare för åtgärd. Nullbar. Returnerar NULL om det inte är tillämpligt.
server_instance_name sysname Namnet på den serverinstans där granskningen inträffade. server\instance Standardformatet används.
database_name sysname Databaskontexten där åtgärden inträffade. Nullbar. Returnerar NULL för granskningar som inträffar på servernivå.
schema_name sysname Schemakontexten där åtgärden inträffade. Nullbar. Returnerar NULL för granskningar som inträffar utanför ett schema.
object_name sysname Namnet på den entitet som granskningen inträffade på, som innehåller följande objekt:

– Serverobjekt
-Databaser
– Databasobjekt
– Schemaobjekt

Nullbar. Returnerar NULL om entiteten är själva servern eller om granskningen inte utförs på objektnivå. Till exempel Autentisering.
statement nvarchar(4000) Transact-SQL-instruktion om den finns. Nullbar. Returnerar 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-stack visas i XML-format för åtgärder som har T-SQL-stacken associerad med dem. 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 kapslingsnivån för ramen. Modulnamnet representeras i tredelat format (database_name, schema_name, och object_name). Modulnamnet parsas för att undkomma ogiltiga XML-tecken som <, >, /, _x. De är förrymda som _xHHHH_. Står HHHH för den fyrsiffriga hexadecimala UCS-2-koden för tecknet. Nullbar. Returnerar NULL när det inte finns någon ytterligare information som rapporteras av 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.

Gäller endast för: SQL Server
user_defined_event_id smallint Användardefinierat händelse-ID skickades 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.

Gäller för: SQL Server 2012 (11.x) och senare versioner, Azure SQL Database och SQL Managed Instance
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.

Gäller för: SQL Server 2012 (11.x) och senare versioner, Azure SQL Database och SQL Managed Instance
audit_schema_version Int Alltid 1.
sequence_group_id varbinary Unik identifierare.

gäller för: SQL Server 2016 (13.x) och senare versioner
transaction_id bigint Unik identifierare för att identifiera flera granskningshändelser i en transaktion.

gäller för: SQL Server 2016 (13.x) och senare versioner
client_ip nvarchar(128) Käll-IP för klientprogrammet.

gäller för: SQL Server 2017 (14.x) och senare versioner och Azure SQL Database
application_name nvarchar(128) Namnet på klientprogrammet som körde -instruktionen som orsakade granskningshändelsen.

gäller för: SQL Server 2017 (14.x) och senare versioner och Azure SQL Database
duration_milliseconds bigint Exekveringstid för frågor i millisekunder.

Gäller för: Azure SQL Database och SQL Managed Instance
response_rows bigint Antal rader som returneras i resultatuppsättningen.

Gäller för: Azure SQL Database och SQL Managed Instance
affected_rows bigint Antal rader som påverkas av det körda uttrycket.

Gäller endast för: Azure SQL Database
connection_id unika identifierare ID för anslutningen på servern.

Gäller för: Azure SQL Database och SQL Managed Instance
data_sensitivity_information nvarchar(4000) Informationstyper och känslighetsetiketter som returneras av den granskade frågan, baserat på de klassificerade kolumnerna i databasen. Läs mer om identifiering och klassificering av Azure SQL Database-data.

Gäller endast för: Azure SQL Database
host_name nvarchar(128) Värdnamn för klientdatorn.
session_context nvarchar(4000) Nyckel/värde-par som ingår i den aktuella sessionskontexten.
client_tls_version bigint Lägsta TLS-version som stöds av klienten.
client_tls_version_name nvarchar(128) Lägsta 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 åtgärd i en transaktion som skapade en radversion.

Gäller för: Endast Azure SQL Database
external_policy_permissions_checked nvarchar(4000) Information som rör den externa behörighetskontrollen, när en granskningshändelse genereras och purview-principer för extern auktorisering utvärderas.

Gäller för: Endast Azure SQL Database
obo_middle_tier_app_id varchar(120) Program-ID:t för mellannivåprogrammet som ansluter till Azure SQL Database med hjälp av OBO-åtkomst (on-behalf-of). Nullbar. Returnerar NULL om begäran inte görs med OBO-åtkomst.

Gäller endast för: Azure SQL Database
is_local_secondary_replica bit True om granskningsposten kommer från en skrivskyddad lokal sekundär replik, False annars.

Gäller för: Endast Azure SQL Database

Anmärkningar

  • Om det file_pattern argument som skickas till refererar till fn_get_audit_file en sökväg eller fil som inte finns, eller om filen inte är en granskningsfil, MSG_INVALID_AUDIT_FILE returneras felmeddelandet.

  • fn_get_audit_file kan inte användas när granskningen skapas med APPLICATION_LOGalternativen , SECURITY_LOGeller EXTERNAL_MONITOR .

Behörigheter

SQL Server 2019 (15.x) och tidigare versioner kräver CONTROL SERVER behörighet på servern.

SQL Server 2022 (16.x) och senare versioner kräver VIEW SERVER SECURITY AUDIT behörighet på servern.

Exempel

Det här exemplet läser från en fil med namnet \\serverName\Audit\HIPAA_AUDIT.sqlaudit.

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

Ett fullständigt exempel på hur du skapar en granskning finns i SQL Server Audit (Database Engine).

Begränsningar

Att välja rader inifrån sys.fn_get_audit_file en CTAS (Create Table As Select) eller INSERT INTO är en begränsning när du kör Azure Synapse Analytics. Även om frågan har slutförts och inga felmeddelanden visas finns det inga rader i tabellen som skapats med CTAS eller INSERT INTO.

Mer information

Systemkatalogvyer:

Transact-SQL: