Condividi tramite


Record di SQL Server Audit

La caratteristica SQL Server Audit consente di controllare gruppi di eventi ed eventi a livello di server e di database. Per ulteriori informazioni, vedere SQL Server Audit (Database Engine). SQL Server.

I controlli sono costituiti da zero o più elementi rappresentati da azioni di controllo, registrati in una destinazione del controllo. La destinazione del controllo può essere un file binario, il registro eventi applicazioni di Windows o il registro eventi di sicurezza di Windows. I record inviati alla destinazione possono contenere gli elementi descritti nella tabella seguente.

Nome colonna

Descrizione

Tipo

Sempre disponibile

event_time

Data e ora di generazione dell'azione controllabile.

datetime2

sequence_no

Viene tenuta traccia della sequenza dei record all'interno di un singolo record di controllo con dimensioni troppo elevate per il buffer di scrittura dei controlli.

int

action_id

ID dell'azione.

SuggerimentoSuggerimento

Per utilizzare action_id come predicato, è necessario convertirlo da stringa di caratteri in un valore numerico. Per ulteriori informazioni, vedere la pagina relativa al filtro di SQL Server Audit sul predicato action_id / class_type.

varchar(4)

succeeded

Indica se l'azione che ha generato l'evento ha avuto esito positivo

bit - 1 = Esito positivo, 0 = Esito negativo

permission_bitmask

Se applicabile, visualizza le autorizzazioni concesse, negate o revocate.

bigint

No

is_column_permission

Flag indicante un'autorizzazione a livello di colonna.

bit - 1 = True, 0 = False

No

session_id

ID della sessione in cui si è verificato l'evento.

int

server_principal_id

ID del contesto dell'account di accesso utilizzato per eseguire l'azione.

int

database_principal_id

ID del contesto dell'utente del database in cui viene eseguita l'azione.

int

No

object_id

ID primario dell'entità in cui si è verificato il controllo. Sono inclusi gli elementi seguenti:

  • oggetti server

  • database

  • oggetti di database

  • oggetti dello schema

int

No

target_server_principal_id

Entità server cui si applica l'azione controllabile.

int

target_database_principal_id

Entità di database cui si applica l'azione controllabile.

int

No

class_type

Tipo di entità controllabile in cui si verifica il controllo.

varchar(2)

session_server_principal_name

Entità server per la sessione.

sysname

server_principal_name

Account di accesso corrente.

sysname

server_principal_sid

SID dell'account di accesso corrente.

varbinary

database_principal_name

Utente corrente.

sysname

No

target_server_principal_name

Account di accesso di destinazione dell'azione.

sysname

No

target_server_principal_sid

SID dell'account di accesso di destinazione.

varbinary

No

target_database_principal_name

Utente di destinazione dell'azione.

sysname

No

server_instance_name

Nome dell'istanza del server in cui si è verificato il controllo. Viene utilizzato il formato standard computer\istanza.

nvarchar(120)

database_name

Contesto del database in cui si è verificata l'azione.

sysname

No

schema_name

Contesto dello schema in cui si è verificata l'azione.

sysname

No

object_name

Nome dell'entità in cui si è verificato il controllo. Sono inclusi gli elementi seguenti:

  • oggetti server

  • database

  • oggetti di database

  • oggetti dello schema

  • istruzione TSQL (se presente)

sysname

No

statement

istruzione TSQL (se presente)

nvarchar(4000)

No

additional_information

Qualsiasi informazione aggiuntiva sull'evento, archiviata in formato XML.

nvarchar(4000)

No

Osservazioni

Alcune azioni non consentono l'inserimento di un valore di colonna perché il valore potrebbe non essere valido per l'azione.

In SQL Server Audit vengono archiviati 4000 caratteri di dati per ogni campo di tipo carattere in un record di controllo. Quando i valori additional_information e statement restituiti da un'azione controllabile sono costituiti da più di 4.000 caratteri, viene utilizzata la colonna sequence_no per scrivere più record nel report del controllo in modo che i dati vengano registrati da una singola azione di controllo. Il processo è il seguente:

  • La colonna statement viene divisa in 4000 caratteri.

  • SQL Server Audit scrive i dati parziali come prima riga del record di controllo. Tutti gli altri campi vengono duplicati in ogni riga.

  • Viene incrementato il valore sequence_no.

  • Questo processo viene ripetuto fino a registrare tutti i dati.

È possibile connettere i dati leggendo le righe in sequenza tramite il valore sequence_no e le colonne event_Time, action_id e session_id per identificare l'azione.

Contenuto correlato

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 DROP DATABASE AUDIT SPECIFICATION (Transact-SQL)

DROP DATABASE AUDIT SPECIFICATION (Transact-SQL)

ALTER AUTHORIZATION (Transact-SQL)

sys.fn_get_audit_file (Transact-SQL)

sys.server_audits (Transact-SQL)

sys.server_file_audits (Transact-SQL)

sys.server_audit_specifications (Transact-SQL)

sys.server_audit_specification_details (Transact-SQL)

sys.database_audit_specifications (Transact-SQL)

sys.database_audit_specification_details (Transact-SQL)

sys.dm_server_audit_status (Transact-SQL)

sys.dm_audit_actions (Transact-SQL)

sys.dm_audit_class_type_map (Transact-SQL)