Megosztás:


SQL Server naplózá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
sequence_number 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 ez az engedélyek lettek megadva, megtagadva vagy visszavonva. 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 Az a kiszolgálónév, amelyen a GRANT/DENY/REVOKE műveletet végrehajtják. 0 értéket ad vissza, ha nem alkalmazható. Int Igen
target_database_principal_id A GRANT/DENY/REVOKE műveletet végrehajtó adatbázisnév. 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
session_server_principal_name 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élbeléptetése. Null értéket ad vissza, ha nem alkalmazható. sysname Nem
target_server_principal_sid A cél bejelentkezés 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ázható. 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ázható. 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 TSQL-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ázható. 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
user_defined_event_id 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
user_defined_information 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 a naplóban rögzíteni kívánt további információk rögzítésére szolgál a sp_audit_write tárolt eljárással.
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
response_rows 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
data_sensitivity_information 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_context 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
ledger_start_sequence_number A következőkre vonatkozik: SQL Server 2022 és újabb verziók

Főkönyv kezdési sorszáma a főkönyvműveletekhez
bigint Nem
external_policy_permissions_checked 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 előfordulhat, hogy nem lehet a művelethez hajtható végre.

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 a event_Time, action_id és session_id oszlopok segítségével egymás után beolvassa az adatokat a művelet azonosításához.