Delen via


SQL Server-controlerecords

Van toepassing op:SQL Server

Met de functie SQL Server-controle kunt u groepen gebeurtenissen en gebeurtenissen op serverniveau en databaseniveau controleren. Zie SQL Server Audit (Database Engine) voor meer informatie. SQL Server.

Controles bestaan uit nul of meer controleactie-items, die worden vastgelegd op een controledoel. Het controledoel kan een binair bestand, het windows-toepassingsgebeurtenislogboek of het Windows-beveiligingsgebeurtenislogboek zijn. De records die naar het doel worden verzonden, kunnen de elementen bevatten die in de volgende tabel worden beschreven:

Kolomnaam Description Typologie Altijd beschikbaar
event_time Datum en tijd waarop de controleerbare actie wordt geactiveerd. datetime2 Yes
sequence_number Houdt de reeks records in één controlerecord bij die te groot was om in de schrijfbuffer voor controles te passen. Int Yes
action_id Id van de actie

Tip: Als u action_id als predicaat wilt gebruiken, moet deze worden geconverteerd van een tekenreeks naar een numerieke waarde. Zie Sql Server-controle filteren op action_id/class_type predicaat voor meer informatie.
varchar(4) Yes
Geslaagd Geeft aan of de actie die de gebeurtenis heeft geactiveerd, is geslaagd. Voor alle andere gebeurtenissen dan aanmeldingsgebeurtenissen wordt alleen gerapporteerd of de machtigingscontrole is geslaagd of mislukt, niet de bewerking.
- 1 = Geslaagd
- 0 = mislukt
bit Yes
permission_bitmask In sommige acties zijn dit de machtigingen die zijn verleend, geweigerd of ingetrokken. varbinary(16) Nee.
is_column_permission Vlag die aangeeft of dit een machtiging op kolomniveau is. Retourneert 0 wanneer de permission_bitmask = 0.
- 1 = Waar
- 0 = Onwaar
bit Nee.
session_id Id van de sessie waarop de gebeurtenis heeft plaatsgevonden. smallint Yes
server_principal_id Id van de aanmeldingscontext waarin de actie wordt uitgevoerd. Int Yes
database_principal_id Id van de databasegebruikerscontext waarin de actie wordt uitgevoerd. Retourneert 0 als dit niet van toepassing is. Bijvoorbeeld een serverbewerking. Int Nee.
target_server_principal_id Server-principal waarop de bewerking GRANT/DENY/REVOKE wordt uitgevoerd. Retourneert 0 indien niet van toepassing. Int Yes
target_database_principal_id De database-principal waarop de bewerking GRANT/DENY/REVOKE wordt uitgevoerd. Retourneert 0 indien niet van toepassing. Int Nee.
object_id De id van de entiteit waarop de controle heeft plaatsgevonden. Dit omvat de volgende:
serverobjecten
Databases
databaseobjecten
schemaobjecten
Retourneert 0 als de entiteit de server zelf is of als de controle niet op objectniveau wordt uitgevoerd. Bijvoorbeeld verificatie.
Int Nee.
class_type Het type controleerbare entiteit waarop de controle plaatsvindt. varchar(2) Yes
session_server_principal_name Server-principal voor de sessie. sysname Yes
server_principal_name Huidige aanmelding. sysname Yes
server_principal_sid Huidige aanmeldings-SID. varbinary(85) Yes
database_principal_name Huidige gebruiker. sysname Nee.
target_server_principal_name Doelaanmelding van de actie. Retourneert NULL indien niet van toepassing. sysname Nee.
target_server_principal_sid SID van de doelaanmelding. Retourneert NULL indien niet van toepassing. varbinary(85) Nee.
target_database_principal_name Doelgebruiker van de actie. Retourneert NULL indien niet van toepassing. sysname Nee.
server_instance_name Naam van het serverexemplaren waar de controle heeft plaatsgevonden. De standaardindeling van de server\instantie wordt gebruikt. sysname Yes
database_name De databasecontext waarin de actie heeft plaatsgevonden. Nullable. Retourneert NULL voor controles die plaatsvinden op serverniveau. sysname Nee.
schema_name De schemacontext waarin de actie heeft plaatsgevonden. sysname Nee.
object_name De naam van de entiteit waarop de controle heeft plaatsgevonden. Dit omvat de volgende:
serverobjecten
Databases
databaseobjecten
schemaobjecten
Nullable. Retourneert NULL als de entiteit de server zelf is of als de controle niet op objectniveau wordt uitgevoerd. Bijvoorbeeld verificatie.
sysname Nee.
verklaring TSQL-instructie als deze bestaat. Retourneert NULL indien niet van toepassing. nvarchar(4000) Nee.
additional_information Unieke informatie die alleen van toepassing is op één gebeurtenis, wordt geretourneerd als XML. Een paar controlebare acties bevatten dit soort informatie.

Eén niveau van TSQL-stack wordt weergegeven in XML-indeling voor acties waaraan TSQL-stack is gekoppeld. De XML-indeling is:
<tsql_stack><frame nest_level = '%u' database_name = '%.*s' schema_name = '%.*s' object_name = '%.*s' /></tsql_stack>
Frame nest_level geeft het huidige nestniveau van het frame aan. De modulenaam wordt weergegeven in drie delen (database_name, schema_name en object_name). De modulenaam wordt geparseerd om ongeldige XML-tekens zoals '\<', '>', '/'. '_x' Ze zullen worden ontsnapt als _xHHHH\_. De HHHH staat voor de hexadecimale UCS-2-code van vier cijfers voor het teken
Nullable. Retourneert NULL wanneer er geen aanvullende informatie is gerapporteerd door de gebeurtenis.
nvarchar(4000) Nee.
file_name Het pad en de naam van het auditlogboekbestand waaruit de record afkomstig is. varchar(260) Yes
audit_file_offset Van toepassing op: alleen SQL Server

De bufferverschil in het bestand dat de controlerecord bevat.
bigint Nee.
user_defined_event_id Van toepassing op: SQL Server 2012 (11.x) en hoger, Azure SQL Database en SQL Managed Instance

Door de gebruiker gedefinieerde gebeurtenis-id is doorgegeven als argument voor sp_audit_writeNULL voor systeemgebeurtenissen (standaard) en niet-nul voor door de gebruiker gedefinieerde gebeurtenis. Zie sp_audit_write (Transact-SQL) voor meer informatie.
smallint Nee.
user_defined_information Van toepassing op: SQL Server 2012 (11.x) en hoger, Azure SQL Database en SQL Managed Instance

Wordt gebruikt om extra informatie vast te leggen die de gebruiker wil opnemen in het auditlogboek met behulp van de sp_audit_write opgeslagen procedure.
nvarchar(4000) Nee.
audit_schema_version Altijd 1 Int Yes
sequence_group_id Van toepassing op: alleen SQL Server

Unieke id
varbinary(85) Nee.
transaction_id Van toepassing op: alleen SQL Server (vanaf 2016)

Unieke id om meerdere controlegebeurtenissen in één transactie te identificeren
bigint Nee.
client_ip Van toepassing op: Azure SQL Database + SQL Server (vanaf 2017)

Bron-IP van de clienttoepassing
nvarchar(128) Nee.
application_name Van toepassing op: Azure SQL Database + SQL Server (vanaf 2017)

Naam van de clienttoepassing die de instructie heeft uitgevoerd die de controlegebeurtenis heeft veroorzaakt
nvarchar(128) Nee.
duration_milliseconds Van toepassing op: Azure SQL Database en SQL Managed Instance

Uitvoeringsduur van query's in milliseconden
bigint Nee.
response_rows Van toepassing op: Azure SQL Database en SQL Managed Instance

Het aantal rijen dat wordt geretourneerd in de resultatenset.
bigint Nee.
affected_rows Van toepassing op: alleen Azure SQL Database

Het aantal rijen dat wordt beïnvloed door de instructie die is uitgevoerd.
bigint Nee.
connection_id Van toepassing op: Azure SQL Database en SQL Managed Instance

Id van de verbinding op de server
GUID Nee.
data_sensitivity_information Van toepassing op: alleen Azure SQL Database

Informatietypen en vertrouwelijkheidslabels die worden geretourneerd door de gecontroleerde query, op basis van de geclassificeerde kolommen in de database. Meer informatie over het detecteren en classificeren van Azure SQL Database-gegevens
nvarchar(4000) Nee.
host_name Hostnaam van de clientverbinding nvarchar(128) Nee.
session_context Sessiecontextinformatie voor de verbinding nvarchar(4000) Nee.
client_tls_version Van toepassing op: SQL Server 2022 en hoger

TLS-versienummer dat wordt gebruikt door de clientverbinding
Int Nee.
client_tls_version_name Van toepassing op: SQL Server 2022 en hoger

TLS-versienaam die wordt gebruikt door de clientverbinding
nvarchar(128) Nee.
database_transaction_id Databasetransactie-id bigint Nee.
ledger_start_sequence_number Van toepassing op: SQL Server 2022 en hoger

Grootboek startreeksnummer voor grootboekbewerkingen
bigint Nee.
external_policy_permissions_checked Externe beleidsmachtigingen die tijdens de bewerking zijn gecontroleerd nvarchar(4000) Nee.

Opmerkingen

Sommige acties vullen de waarde van een kolom niet in, omdat deze mogelijk niet van toepassing zijn op de actie.

SQL Server Audit slaat 4000 tekens aan gegevens op voor tekenvelden in een auditrecord. Wanneer de additional_information - en instructiewaarden die zijn geretourneerd door een controleerbare actie meer dan 4000 tekens retourneren, wordt de kolom sequence_number gebruikt om meerdere records naar het auditrapport te schrijven voor één controleactie om deze gegevens vast te leggen. Het proces is als volgt:

  • De instructiekolom is onderverdeeld in 4000 tekens.

  • SQL Server Audit schrijft als de eerste rij voor de auditrecord met de gedeeltelijke gegevens. Alle andere velden worden in elke rij gedupliceerd.

  • De sequence_number waarde wordt verhoogd.

  • Dit proces wordt herhaald totdat alle gegevens zijn vastgelegd.

U kunt de gegevens verbinden door de rijen opeenvolgend te lezen met behulp van de sequence_number-waarde en de kolommen event_Time, action_id en session_id om de actie te identificeren.