Anteckning
Å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:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure 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 = lyckades0 = 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 = 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 | 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_fileen sökväg eller fil som inte finns, eller om filen inte är en granskningsfil,MSG_INVALID_AUDIT_FILEreturneras felmeddelandet.fn_get_audit_filekan inte användas när granskningen skapas medAPPLICATION_LOGalternativen ,SECURITY_LOGellerEXTERNAL_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:
- 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)
- ÄNDRA SERVERGRANSKNING (Transact-SQL)
- TA BORT SERVERGRANSKNING (Transact-SQL)
- SKAPA SERVERGRANSKNINGSSPECIFIKATION (Transact-SQL)
- ÄNDRA SERVERGRANSKNINGSSPECIFIKATION (Transact-SQL)
- TA BORT SERVERGRANSKNINGSSPECIFIKATION (Transact-SQL)
- SKAPA DATABASGRANSKNINGSSPECIFIKATION (Transact-SQL)
- ÄNDRA SPECIFIKATION FÖR DATABASGRANSKNING (Transact-SQL)
- TA BORT DATABASGRANSKNINGSSPECIFIKATION (Transact-SQL)
- ÄNDRA AUKTORISATION (Transact-SQL)