Záznamy auditu SQL Serveru

platí pro:SQL Server

Funkce Audit SQL Serveru umožňuje auditovat skupiny událostí a událostí na úrovni serveru a databáze. Další informace naleznete v tématu Sql Server Audit (databázový stroj). SQL Server.

Audity se skládají z nulových nebo více položek akcí auditu, které se zaznamenávají do cíle auditu. Cílem auditu může být binární soubor, protokol událostí aplikace systému Windows nebo protokol událostí zabezpečení systému Windows. Záznamy odeslané do cíle mohou obsahovat prvky popsané v následující tabulce:

Název sloupce Description Typ Vždy k dispozici
event_time Datum a čas, kdy se aktivuje auditovatelná akce. datetime2 Ano
pořadové_číslo Sleduje posloupnost záznamů v rámci jednoho záznamu auditu, který byl příliš velký, aby se vešel do vyrovnávací paměti pro zápis auditů. Int Ano
action_id ID akce

Tip: Chcete-li použít action_id jako predikát , musí být převeden z řetězce znaků na číselnou hodnotu. Další informace najdete v tématu Filtrování auditu SQL Serveru na action_id / class_type predikát.
varchar(4) Ano
uspěl Určuje, jestli akce, která aktivovala událost, byla úspěšná. 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í
bit Ano
permission_bitmask V některých akcích se jedná o oprávnění udělená, zamítnutá nebo odvolaná. varbinary(16) Ne
is_column_permission Příznak označující, jestli se jedná o oprávnění na úrovni sloupce. Vrátí hodnotu 0, když permission_bitmask = 0.
- 1 = Pravda
- 0 = Nepravda
bit Ne
session_id ID relace, na které došlo k události. smallint Ano
server_principal_id ID přihlašovacího kontextu, ve které se akce provádí. Int Ano
ID hlavního objektu databáze ID kontextu uživatele databáze, ve které se akce provádí. Vrátí hodnotu 0, pokud se to nepoužije. Například operace serveru. Int Ne
target_server_principal_id Hlavní entita serveru, na kterou se provádí operace GRANT/DENY/REVOKE. Vrátí hodnotu 0, pokud není relevantní. Int Ano
target_database_principal_id Hlavní entita v databázi, na kterou se provádí operace GRANT/DENY/REVOKE. Vrátí hodnotu 0, pokud není použitelné. Int Ne
object_id ID entity, na které došlo k auditu. To zahrnuje:
serverové objekty
databáze
databázové objekty
Objekty schématu
Vrátí hodnotu 0, pokud je entita samotným serverem nebo pokud se audit neprovádí na úrovni objektu. Například ověřování.
Int Ne
class_type Typ auditovatelné entity, u které probíhá audit. varchar(2) Ano
session_server_principal_name Principál serveru pro relaci. sysname Ano
server_principal_name Aktuální přihlášení. sysname Ano
server_principal_sid Aktuální identifikátor SID přihlášení. varbinary(85) Ano
database_principal_name Aktuální uživatel. sysname Ne
target_server_principal_name Cílové přihlášení operace. Vrátí hodnotu NULL, pokud není použitelné. sysname Ne
target_server_principal_sid IDENTIFIKÁTOR SID cílového přihlášení. Vrátí hodnotu NULL, pokud není k dispozici. varbinary(85) Ne
název_cílového_hlavního_subjektu_databáze Cílový uživatel akce. Vrátí NULL, pokud to není použitelné. sysname Ne
server_instance_name Název instance serveru, ve které došlo k auditu. Používá se standardní formát serveru\instance. sysname Ano
database_name Kontext databáze, ve kterém došlo k akci. Nullovatelné Vrátí hodnotu NULL pro audity, ke kterým dochází na úrovni serveru. sysname Ne
schema_name Kontext schématu, ve kterém došlo k akci. sysname Ne
object_name Název entity, na které došlo k auditu. To zahrnuje:
serverové objekty
databáze
databázové objekty
Objekty schématu
Nulovatelný Vrátí hodnotu NULL, pokud je entita samotný server nebo pokud se audit neprovádí na úrovni objektu. Například ověřování.
sysname Ne
výrok Příkaz T-SQL, pokud existuje. Vrátí NULL, pokud to není použitelné. nvarchar(4000) Ne
additional_information 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 TSQL se zobrazí ve formátu XML pro akce, které mají přiřazený zásobník TSQL. Formát XML bude:
<tsql_stack><frame nest_level = '%u' database_name = '%.*s' schema_name = '%.*s' object_name = '%.*s' /></tsql_stack>
Aktuální úroveň vnoření rámce je označena jako nest_level. Název modulu je reprezentován ve třech částech formátu (database_name, schema_name a object_name). Název modulu bude zpracován tak, aby se odstranily neplatné znaky XML, jako jsou '\<', '>', '/', '_x'. Budou utekli jako _xHHHH\_. HHHH znamená čtyřmístný šestnáctkový kód UCS-2 pro znak.
Nulovatelný Vrátí hodnotu NULL, pokud událost neobsahuje žádné další informace.
nvarchar(4000) Ne
file_name Cesta a název souboru protokolu auditu, ze kterého záznam pochází. varchar(260) Ano
audit_file_offset Platí pro: Pouze SQL Server

Posun nárazníku v souboru, který obsahuje auditní záznam.
bigint Ne
user_defined_event_id Platí pro: SQL Server 2012 (11.x) a novější, Azure SQL Database a SQL Managed Instance

ID události definované uživatelem předané jako argument sp_audit_writeNULL pro systémové události (výchozí) a nenulové pro uživatelem definovanou událost. Další informace najdete v tématu sp_audit_write (Transact-SQL).
smallint Ne
uživatelsky definované informace Platí pro: SQL Server 2012 (11.x) a novější, Azure SQL Database a SQL Managed Instance

Používá se k zaznamenání dalších informací, které chce uživatel zaznamenat v protokolu auditu pomocí sp_audit_write uložené procedury.
nvarchar(4000) Ne
verze_auditního_schématu Vždy 1 Int Ano
sequence_group_id Platí pro: Pouze SQL Server

Jedinečný identifikátor
varbinary(85) Ne
transaction_id Platí pro: Pouze SQL Server (od verze 2016)

Jedinečný identifikátor pro identifikaci více událostí auditu v jedné transakci
bigint Ne
client_ip Platí pro: Azure SQL Database + SQL Server (od roku 2017)

Zdrojová IP adresa klientské aplikace
nvarchar(128) Ne
application_name Platí pro: Azure SQL Database + SQL Server (od roku 2017)

Název klientské aplikace, která spustila příkaz, který způsobil událost auditu
nvarchar(128) Ne
duration_milliseconds Platí pro: službu Azure SQL Database a službu SQL Managed Instance

Doba trvání provádění dotazů v milisekundách
bigint Ne
řádky_odpovědi Platí pro: Azure SQL Database a SQL Managed Instance

Počet řádků vrácených v sadě výsledků
bigint Ne
ovlivněné řádky Platí pro: Pouze Azure SQL Database

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

ID připojení na serveru
GUID Ne
informace o citlivosti dat Platí pro: Pouze Azure SQL Database

Typy informací a popisky citlivosti vrácené auditovaným dotazem na základě klasifikovaných sloupců v databázi. Další informace o zjišťování a klasifikaci dat Azure SQL Database
nvarchar(4000) Ne
host_name Název hostitele připojení klienta nvarchar(128) Ne
session_kontext Informace o kontextu relace pro připojení nvarchar(4000) Ne
client_tls_version Platí pro: SQL Server 2022 a novější

Číslo verze protokolu TLS používané připojením klienta
Int Ne
client_tls_version_name Platí pro: SQL Server 2022 a novější

Název verze protokolu TLS používaný připojením klienta
nvarchar(128) Ne
database_transaction_id Identifikátor databázové transakce bigint Ne
číslo_pořadí_začátku_knihy Platí pro: SQL Server 2022 a novější

Počáteční pořadové číslo hlavní knihy pro operace hlavní knihy
bigint Ne
externí_politika_oprávnění_zkontrolováno Oprávnění pro externí zásady, která byla kontrolována během operace nvarchar(4000) Ne

Poznámky

Některé akce nenaplní hodnotu sloupce, protože tato hodnota nemusí být pro danou akci použitelná.

Sql Server Audit ukládá 4 000 znaků dat pro pole znaků v záznamu auditu. Když hodnoty additional_information a výroků vrácené z auditní akce vrátí více než 4 000 znaků, použije se sloupec sequence_number k zápisu více záznamů do sestavy auditu pro jednu auditní akci, aby zaznamenal tato data. Proces je následující:

  • Sloupec příkazu je rozdělený na 4 000 znaků.

  • Audit SQL Serveru zapíše první řádek záznamu auditu s částečnými daty. Všechna ostatní pole se v každém řádku duplikují.

  • Hodnota sequence_number se zvýší.

  • Tento proces se opakuje, dokud se nezaznamenávají všechna data.

Data můžete propojit tak, že řádky přečtete postupně pomocí hodnoty sequence_number a event_Time, action_id a session_id sloupců k identifikaci akce.