Sdílet prostřednictvím


sys.fn_get_audit_file (Transact-SQL)

platí pro:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse Analyticssql database v Microsoft Fabric

Vrátí informace ze souboru auditu vytvořeného auditem serveru v SQL Serveru. Další informace naleznete v tématu Sql Server Audit (databázový stroj).

Návod

Zvažte místo toho použití sys.fn_get_audit_file_v2 . Funkce sys.fn_get_audit_file_v2 zavádí časově založené filtrování jak na úrovni souboru, tak záznamu, což přináší významné zlepšení výkonu, zejména u dotazů zaměřených na konkrétní časové období.

Návod

Pro Fabric Data Warehouse je podporován, sys.fn_get_audit_file ale doporučuje se sys.fn_get_audit_file_v2 (Transact-SQL ). Funkce sys.fn_get_audit_file_v2 zavádí časově založené filtrování jak na úrovni souboru, tak záznamu, což přináší významné zlepšení výkonu, zejména u dotazů zaměřených na konkrétní časové období. Pro více informací a příklady viz Konfigurace auditu ve skladu dat ve fabrice.

Návod

Pro SQL databázi ve Fabricu je podporováno, sys.fn_get_audit_file ale doporučuje se sys.fn_get_audit_file_v2 (Transact-SQL ). Funkce sys.fn_get_audit_file_v2 zavádí časově založené filtrování jak na úrovni souboru, tak záznamu, což přináší významné zlepšení výkonu, zejména u dotazů zaměřených na konkrétní časové období. Pro více informací a příklady viz Konfigurace auditu v databázi Fabric SQL.

Transact-SQL konvence syntaxe

Syntaxe

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

Argumenty

file_pattern

Určuje adresář nebo cestu a název souboru pro soubor auditu, který se má přečíst. Typ je nvarchar(260).

Předání cesty bez vzoru názvu souboru vygeneruje chybu.

Tento argument musí obsahovat cestu (písmeno jednotky nebo sdílenou síťovou složku) i název souboru, který může obsahovat zástupný znak. Jednu hvězdičku (*) lze použít ke shromažďování více souborů ze sady souborů auditu. Například:

  • \<path>\* – Shromážděte všechny soubory auditu v zadaném umístění.

  • <path>\LoginsAudit_{GUID}* – Shromážděte všechny soubory auditu, které mají zadaný název a dvojici GUID.

  • <path>\LoginsAudit_{GUID}_00_29384.sqlaudit – Shromážděte konkrétní soubor auditu.

initial_file_name

Určuje cestu a název konkrétního souboru v sadě souboru auditu, ze které se mají začít číst záznamy auditu. Typ je nvarchar(260).

Argument initial_file_name musí obsahovat platné položky nebo musí obsahovat default hodnotu nebo NULL hodnotu.

audit_record_offset

Určuje známé umístění se souborem zadaným pro initial_file_name. Při použití tohoto argumentu funkce začne číst na prvním záznamu vyrovnávací paměti bezprostředně za zadaným posunem.

Argument audit_record_offset musí obsahovat platné položky nebo musí obsahovat default hodnotu nebo NULL hodnotu. Typ je bigint.

Vrácené tabulky

Následující tabulka popisuje obsah souboru auditu, který může tato funkce vrátit.

Název sloupce Typ Popis
event_time datetime2 Datum a čas UTC, kdy se aktivuje auditovatelná akce. Není nulovatelný.
sequence_number Int Sleduje posloupnost záznamů v rámci jednoho záznamu auditu, který byl příliš velký, aby se vešl do vyrovnávací paměti zápisu pro audity. Není nulovatelný.
action_id varchar(4) ID akce. Není nulovatelný.
succeeded bit Určuje, jestli akce, která aktivovala událost, byla úspěšná. Není nulovatelný. U všech událostí kromě událostí přihlášení to jenom hlásí, jestli byla kontrola oprávnění úspěšná nebo neúspěšná, ne operace.

1 = úspěch
0 = selhání
permission_bitmask varbinární(16) V některých akcích je tato bitová maska oprávnění, která byla udělena, odepřena nebo odvolána.
is_column_permission bit Příznak označující, jestli se jedná o oprávnění na úrovni sloupce. Není nulovatelný. Vrátí0, když .permission_bitmask = 0

1 = pravda
0 = nepravda
session_id smallint ID relace, na které došlo k události. Není nulovatelný.
server_principal_id Int ID přihlašovacího kontextu, ve které se akce provádí. Není nulovatelný.
database_principal_id Int ID kontextu uživatele databáze, ve které se akce provádí. Není nulovatelný. Vrátí 0 , pokud se to netýká. Například operace serveru.
target_server_principal_id Int Objekt zabezpečení serveru, na GRANT/DENY/REVOKE který se operace provádí. Není nulovatelný. Vrátí 0 , pokud není k dispozici.
target_database_principal_id Int Instanční objekt databáze, na který GRANT/DENY/REVOKE se operace provádí. Není nulovatelný. Vrátí 0 , pokud není k dispozici.
object_id Int ID entity, na které došlo k auditu, což zahrnuje následující objekty:

– Objekty serveru
-Databáze
– Databázové objekty
– Objekty schématu

Není nulovatelný. Vrátí 0 , pokud je entita samotným serverem nebo pokud se audit neprovádí na úrovni objektu. Například ověřování.
class_type varchar(2) Typ auditovatelné entity, u které probíhá audit. Není nulovatelný.
session_server_principal_name sysname Hlavní objekt serveru pro relaci. Nulovatelný. Vrátí identitu původního přihlášení, které bylo připojeno k instanci databázového stroje v případě, že existovaly explicitní nebo implicitní kontextové přepínače.
server_principal_name sysname Aktuální přihlášení. Nulovatelný.
server_principal_sid varbinary Aktuální identifikátor zabezpečení přihlášení (SID). Nulovatelný.
database_principal_name sysname Aktuální uživatel. Nulovatelný. Vrátí NULL , pokud není k dispozici.
target_server_principal_name sysname Cílové přihlášení k akci. Nulovatelný. Vrátí NULL , pokud není k dispozici.
target_server_principal_sid varbinary SID pro cílové přihlášení. Nulovatelný. Vrátí NULL , pokud není k dispozici.
target_database_principal_name sysname Cílový uživatel akce. Nulovatelný. Vrátí NULL , pokud není k dispozici.
server_instance_name sysname Název instance serveru, ve které došlo k auditu. Používá se standardní server\instance formát.
database_name sysname Kontext databáze, ve kterém došlo k akci. Nulovatelný. Vrátí NULL pro audity, ke kterým dochází na úrovni serveru.
schema_name sysname Kontext schématu, ve kterém došlo k akci. Nulovatelný. Vrátí NULL pro audity, ke kterým dochází mimo schéma.
object_name sysname Název entity, ke které došlo k auditu, která zahrnuje následující objekty:

– Objekty serveru
-Databáze
– Databázové objekty
– Objekty schématu

Nulovatelný. Vrátí NULL , pokud je entita samotným serverem nebo pokud se audit neprovádí na úrovni objektu. Například ověřování.
statement nvarchar(4000) Transact-SQL příkaz, pokud existuje. Nulovatelný. Vrátí NULL , pokud není k dispozici.
additional_information nvarchar(4000) Jedinečné informace, které platí pouze pro jednu událost, se vrátí jako XML. Tento druh informací obsahuje několik auditovatelných akcí.

Jedna úroveň zásobníku T-SQL se zobrazí ve formátu XML pro akce, které mají přiřazený zásobník T-SQL. Formát XML je: <tsql_stack><frame nest_level = '%u' database_name = '%.*s' schema_name = '%.*s' object_name = '%.*s' /></tsql_stack>

frame nest_level označuje aktuální úroveň vnoření rámce. Název modulu je reprezentován ve třech částech formátu (database_name, schema_namea object_name). Název modulu se parsuje tak, aby uchytá neplatnými znaky XML, jako je <, >, /, _x. Utekli jako _xHHHH_. Zkratka HHHH pro čtyřmístný šestnáctkový kód UCS-2 pro znak. Nulovatelný. Vrátí NULL , pokud událost neobsahuje žádné další informace.
file_name varchar(260) Cesta a název souboru protokolu auditu, ze kterého záznam pochází. Není nulovatelný.
audit_file_offset bigint Posun vyrovnávací paměti v souboru, který obsahuje záznam auditu. Není nulovatelný.

Platí pro: Pouze SQL Server
user_defined_event_id smallint ID události definované uživatelem předané jako argument .sp_audit_write NULL pro systémové události (výchozí) a nenulové pro uživatelem definovanou událost. Další informace najdete v tématu sp_audit_write.

Platí pro: SQL Server 2012 (11.x) a novější verze, Azure SQL Database a SQL Managed Instance
user_defined_information nvarchar(4000) Používá se k zaznamenání dalších informací, které chce uživatel zaznamenat v protokolu auditu pomocí sp_audit_write uložené procedury.

Platí pro: SQL Server 2012 (11.x) a novější verze, Azure SQL Database a SQL Managed Instance
audit_schema_version Int Vždy 1.
sequence_group_id varbinary Jedinečný identifikátor.

platí pro: SQL Server 2016 (13.x) a novější verze
transaction_id bigint Jedinečný identifikátor pro identifikaci více událostí auditu v jedné transakci.

platí pro: SQL Server 2016 (13.x) a novější verze
client_ip nvarchar(128) Zdrojová IP adresa klientské aplikace

platí pro: SQL Server 2017 (14.x) a novější verze a Azure SQL Database
application_name nvarchar(128) Název klientské aplikace, která spustila příkaz, který způsobil událost auditu

platí pro: SQL Server 2017 (14.x) a novější verze a Azure SQL Database
duration_milliseconds bigint Doba provádění dotazu v milisekundách

Platí pro: Azure SQL Database a SQL Managed Instance
response_rows bigint Počet řádků vrácených v sadě výsledků

Platí pro: Azure SQL Database a SQL Managed Instance
affected_rows bigint Počet řádků ovlivněných provedeným příkazem

Platí pro: Pouze Azure SQL Database
connection_id jedinečnýidentifikátor ID připojení na serveru.

Platí pro: Azure SQL Database a SQL Managed Instance
data_sensitivity_information nvarchar(4000) Typy informací a popisky citlivosti vrácené auditovaným dotazem na základě klasifikovaných sloupců v databázi. Přečtěte si další informace o zjišťování a klasifikaci dat Azure SQL Database.

Platí pro: Pouze Azure SQL Database
host_name nvarchar(128) Název hostitele klientského počítače.
session_context nvarchar(4000) Páry klíč-hodnota, které jsou součástí aktuálního kontextu relace.
client_tls_version bigint Minimální verze protokolu TLS podporovaná klientem
client_tls_version_name nvarchar(128) Minimální verze protokolu TLS podporovaná klientem
database_transaction_id bigint ID transakce aktuální transakce v aktuální relaci.
ledger_start_sequence_number bigint Pořadové číslo operace v rámci transakce, která vytvořila verzi řádku.

Platí pro: Pouze Azure SQL Database
external_policy_permissions_checked nvarchar(4000) Informace týkající se kontroly oprávnění externí autorizace, kdy se vygeneruje událost auditu, a vyhodnocují se zásady externí autorizace Purview.

Platí pro: Pouze Azure SQL Database
obo_middle_tier_app_id varchar(120) ID aplikace střední vrstvy, která se připojuje ke službě Azure SQL Database pomocí přístupu jménem uživatele (OBO). Nulovatelný. Vrátí NULL , pokud požadavek není proveden pomocí přístupu OBO.

Platí pro: Pouze Azure SQL Database
is_local_secondary_replica bit True pokud záznam auditu pochází z místní sekundární repliky jen pro čtení, False jinak.

Platí pro: Pouze Azure SQL Database

Poznámky

  • Pokud file_pattern argument předaný odkazem na fn_get_audit_file cestu nebo soubor, který neexistuje, nebo pokud soubor není souborem auditu, MSG_INVALID_AUDIT_FILE vrátí se chybová zpráva.

  • fn_get_audit_file nelze použít při vytváření auditu pomocí APPLICATION_LOGparametrů , SECURITY_LOGnebo EXTERNAL_MONITOR možností.

Povolení

SQL Server 2019 (15.x) a starší verze vyžadují oprávnění CONTROL SERVER na serveru.

SQL Server 2022 (16.x) a novější verze vyžadují VIEW SERVER SECURITY AUDIT oprávnění na serveru.

Příklady

Tento příklad čte ze souboru s názvem \\serverName\Audit\HIPAA_AUDIT.sqlaudit.

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

Úplný příklad vytvoření auditu najdete v tématu SQL Server Audit (databázový stroj).</a0>

Omezení

Výběr řádků v sys.fn_get_audit_file rámci příkazu Create Table As Select (CTAS) nebo INSERT INTO je omezení při spuštění ve službě Azure Synapse Analytics. I když se dotaz úspěšně dokončí a nezobrazí se žádné chybové zprávy, v tabulce vytvořené pomocí CTAS nebo INSERT INTO.

Více informací

Zobrazení systémového katalogu:

Transact-SQL:

  • CREATE SERVER AUDIT (Transact-SQL)
  • ALTER SERVER AUDIT (Transact-SQL)
  • DROP SERVER AUDIT (Transact-SQL)
  • CREATE SERVER AUDIT SPECIFICATION (Transact-SQL)
  • ALTER SERVER AUDIT SPECIFICATION (Transact-SQL)
  • DROP SERVER AUDIT SPECIFICATION (Transact-SQL)
  • CREATE DATABASE AUDIT SPECIFICATION (Transact-SQL)
  • ALTER DATABASE AUDIT SPECIFICATION (Transact-SQL)
  • DROP DATABASE AUDIT SPECIFICATION (Transact-SQL)
  • ZMĚNIT AUTORIZACI (Transact-SQL)