SQL Server auditálási rekordjai

A következőkre vonatkozik:SQL Server

Az SQL Server naplózási funkciója lehetővé teszi az események és események kiszolgálószintű és adatbázisszintű csoportjainak naplózását. További információ: SQL Server Audit (Adatbázismotor). SQL Server.

Az auditok nulla vagy több naplózási műveletelemből állnak, amelyeket egy auditcél rögzít. A naplózási cél lehet bináris fájl, a Windows-alkalmazás eseménynaplója vagy a Windows Biztonsági eseménynapló. A célnak küldött rekordok az alábbi táblázatban leírt elemeket tartalmazhatják:

Oszlop neve Description Típus Mindig elérhető
event_time A naplózható művelet aktiválásának dátuma és időpontja. datetime2 Igen
sorszám Nyomon követi egy olyan naplórekord rekordjainak sorrendjét, amelyek túl nagyok ahhoz, hogy elférjenek az auditok írási pufferében. Int Igen
action_id A művelet azonosítója

Tipp: A action_id predikátumként való használatához karaktersztringből numerikus értékre kell konvertálni. További információ: Sql Server-naplózás szűrése action_id/class_type predikátumon.
varchar(4) Igen
Sikerült Azt jelzi, hogy az eseményt kiváltó művelet sikeres volt-e. 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
bit Igen
permission_bitmask Egyes műveletekben ezek a megadott, megtagadott vagy visszavont engedélyek. varbinary(16) Nem
is_column_permission Jelző, amely jelzi, hogy ez oszlopszintű engedély-e. 0 értéket ad vissza, ha a permission_bitmask = 0.
- 1 = Igaz
- 0 = Hamis
bit Nem
session_id Annak a munkamenetnek az azonosítója, amelyen az esemény történt. smallint Igen
server_principal_id A műveletet végrehajtó bejelentkezési környezet azonosítója. Int Igen
database_principal_id Annak az adatbázis-felhasználói környezetnek az azonosítója, amelyben a műveletet végrehajtják. 0 értéket ad vissza, ha ez nem érvényes. Például egy kiszolgálóművelet. Int Nem
target_server_principal_id A /GRANT/DENY műveletet végrehajtó kiszolgálónévREVOKE. 0 értéket ad vissza, ha nem alkalmazható. Int Igen
target_database_principal_id A /GRANT/DENY műveletet végrehajtó adatbázisnévREVOKE. 0 értéket ad vissza, ha nem alkalmazható. Int Nem
object_id Annak az entitásnak az azonosítója, amelyen a naplózás történt. Ez magában foglalja a következőket:
kiszolgálóobjektumok
Adatbázisok
adatbázis-objektumok
sémaobjektumok
0 értéket ad vissza, 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.
Int Nem
class_type A naplózható entitás típusa, amelyen a naplózás történik. varchar(2) Igen
munkamenet_szerver_főfelhasználói_név A munkamenethez tartozó kiszolgálónév. sysname Igen
server_principal_name Aktuális bejelentkezés. sysname Igen
server_principal_sid Jelenlegi bejelentkezési SID. varbinary(85) Igen
database_principal_name Jelenlegi felhasználó. sysname Nem
target_server_principal_name A művelet céljának bejelentkezése. Null értéket ad vissza, ha nem alkalmazható. sysname Nem
target_server_principal_sid A cél bejelentkezés SID-je (biztonsági azonosítója). Null értéket ad vissza, ha nem alkalmazható. varbinary(85) Nem
target_database_principal_name A művelet célfelhasználója. Null értéket ad vissza, ha nem alkalmazható. sysname Nem
server_instance_name Annak a kiszolgálópéldánynak a neve, ahol a naplózás történt. A rendszer a standard kiszolgáló\példányformátumot használja. sysname Igen
database_name Az adatbázis-környezet, amelyben a művelet történt. Null értékű Null értéket ad vissza a kiszolgáló szintjén végzett naplózásokhoz. sysname Nem
schema_name A sémakörnyezet, amelyben a művelet történt. sysname Nem
object_name Annak az entitásnak a neve, amelyen a naplózás történt. Ez magában foglalja a következőket:
kiszolgálóobjektumok
Adatbázisok
adatbázis-objektumok
sémaobjektumok
Null értékű Null értéket ad vissza, 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.
sysname Nem
állítás T-SQL utasítás, ha létezik. Null értéket ad vissza, ha nem alkalmazható. nvarchar(4000) Nem
additional_information 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 TSQL-verem egy szintje XML formátumban jelenik meg azokhoz a műveletekhez, amelyekhez TSQL-verem van társítva. Az XML formátum a következő lesz:
<tsql_stack><frame nest_level = '%u' database_name = '%.*s' schema_name = '%.*s' object_name = '%.*s' /></tsql_stack>
A keret nest_level a keret aktuális beágyazási szintjét jelzi. A modul neve három részformátumban (database_name, schema_name és object_name) jelenik meg. A modul nevét a rendszer elemzi, hogy elkerülje az olyan érvénytelen XML-karaktereket, mint a '\<', '>', '/''_x'. Úgy szöknek meg, mint _xHHHH\_. A HHHH a karakter négyjegyű hexadecimális UCS-2 kódját jelöli
Null értékű Null értéket ad vissza, ha az esemény nem jelent további információt.
nvarchar(4000) Nem
file_name Annak a naplófájlnak az elérési útja és neve, amelyből a rekord származik. varchar(260) Igen
audit_file_offset Csak az SQL Serverre vonatkozik

A naplózási rekordot tartalmazó fájl puffereltolása.
bigint Nem
felhasználó_által_meghatározott_esemény_azonosító A következőkre vonatkozik: SQL Server 2012 (11.x) és újabb, Azure SQL Database és felügyelt SQL-példány

A felhasználó által megadott eseményazonosító argumentumként lett átadva a sp_audit_writeNULL értéknek a rendszeresemények (alapértelmezett) és a felhasználó által definiált esemény esetében nem. További információ: sp_audit_write (Transact-SQL).
smallint Nem
felhasználó_által_meghatározott_információ A következőkre vonatkozik: SQL Server 2012 (11.x) és újabb, Azure SQL Database és felügyelt SQL-példány

Az auditnaplóban a felhasználó által rögzíteni kívánt bármilyen további információ rögzítésére szolgál a sp_audit_write tárolt eljárás használatával.
nvarchar(4000) Nem
audit_schema_version Mindig 1 Int Igen
sequence_group_id Csak az SQL Serverre vonatkozik

Egyedi azonosító
varbinary(85) Nem
transaction_id Csak az SQL Serverre vonatkozik (2016-tól kezdődően)

Egyedi azonosító több auditesemény azonosításához egy tranzakcióban
bigint Nem
client_ip A következőkre vonatkozik: Azure SQL Database + SQL Server (2017-től kezdődően)

Az ügyfélalkalmazás forrás IP-címe
nvarchar(128) Nem
application_name A következőkre vonatkozik: Azure SQL Database + SQL Server (2017-től kezdődően)

A naplózási eseményt okozó utasítást végrehajtó ügyfélalkalmazás neve
nvarchar(128) Nem
duration_milliseconds A következőkre vonatkozik: Azure SQL Database és felügyelt SQL-példány

Lekérdezés végrehajtásának időtartama ezredmásodpercben
bigint Nem
válasz_sorok A következőkre vonatkozik: Azure SQL Database és felügyelt SQL-példány

Az eredményhalmazban visszaadott sorok száma.
bigint Nem
affected_rows Csak az Azure SQL Database-re vonatkozik

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

A kiszolgáló kapcsolatának azonosítója
GUID Nem
adat_érzékenységi_információ Csak az Azure SQL Database-re vonatkozik

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
nvarchar(4000) Nem
host_name Az ügyfélkapcsolat állomásneve nvarchar(128) Nem
session_kontextus A kapcsolat munkamenet-környezetének adatai nvarchar(4000) Nem
client_tls_version A következőkre vonatkozik: SQL Server 2022 és újabb verziók

Az ügyfélkapcsolat által használt TLS-verziószám
Int Nem
client_tls_version_name A következőkre vonatkozik: SQL Server 2022 és újabb verziók

Az ügyfélkapcsolat által használt TLS-verziónév
nvarchar(128) Nem
database_transaction_id Adatbázis tranzakcióazonosítója bigint Nem
főkönyv_kezdő_sorszám A következőkre vonatkozik: SQL Server 2022 és újabb verziók

Főkönyv kezdősorszáma a főkönyvi műveletekhez
bigint Nem
külső_szabályzat_engedélyek_ellenőrizve A művelet során ellenőrzött külső szabályzatengedélyek nvarchar(4000) Nem

Megjegyzések

Egyes műveletek nem töltik fel az oszlop értékét, mert az nem vonatkozik az adott műveletre.

Az SQL Server Audit 4000 karakternyi adatot tárol egy naplórekord karaktermezőihez. Ha a naplózható műveletből visszaadott additional_information és utasításértékek több mint 4000 karaktert adnak vissza, a sequence_number oszlop több rekord írására szolgál a naplójelentésbe egyetlen naplózási művelethez az adatok rögzítéséhez. A folyamat a következő:

  • Az utasítás oszlopa 4000 karakterből áll.

  • Az SQL Server Audit a részleges adatokkal rendelkező naplózási rekord első soraként ír. Az összes többi mező ismétlődik minden sorban.

  • A sequence_number érték növekszik.

  • Ez a folyamat addig ismétlődik, amíg az összes adatot fel nem rögzítik.

A sequence_number érték, valamint az event_Time, action_id és session_id oszlopokat felhasználva, soronként olvasva összekapcsolhatja az adatokat a művelet azonosításához.