Record di SQL Server AuditSQL Server Audit Records

La caratteristica SQL ServerSQL Server Audit consente di controllare gruppi di eventi ed eventi a livello di server e di database.The SQL ServerSQL Server Audit feature enables you to audit server-level and database-level groups of events and events. Per altre informazioni, vedere SQL Server Audit (Motore di database).For more information, see SQL Server Audit (Database Engine). SQL ServerSQL Server..

I controlli sono costituiti da zero o più attività di controllo, che vengono registrate in una destinazionedel controllo.Audits consist of zero or more audit action items, which are recorded to an audit target. La destinazione del controllo può essere un file binario, il registro eventi applicazioni di Windows o il registro eventi di sicurezza di Windows.The audit target can be a binary file, the Windows Application event log, or the Windows Security event log. I record inviati alla destinazione possono contenere gli elementi descritti nella tabella seguente:The records sent to the target can contain the elements described in the following table:

Nome colonnaColumn name DescrizioneDescription TipoType Sempre disponibileAlways available
event_timeevent_time Data e ora di generazione dell'azione controllabile.Date/time when the auditable action is fired. datetime2datetime2 Yes
sequence_nosequence_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.Tracks the sequence of records within a single audit record that was too large to fit in the write buffer for audits. intint Yes
action_idaction_id ID dell'azione.ID of the action

Suggerimento: per usare action_id come predicato, è necessario convertirlo da stringa di caratteri in valore numerico.Tip: To use action_id as a predicate it must be converted from a character string to a numeric value. Per altre informazioni, vedere Filter SQL Server Audit on action_id / class_type predicate(Filtro di SQL Server Audit con il predicato action_id / class_type).For more information, see Filter SQL Server Audit on action_id / class_type predicate.
varchar(4)varchar(4) Yes
succeededsucceeded Indica se il controllo delle autorizzazioni dell'azione che attiva l'evento di controllo è riuscito o meno.Indicates whether or not the permission check of the action triggering the audit event succeeded or failed. bitbit
- 1 = esito positivo– 1 = Success,
0 = esito negativo0 = Fail
Yes
permission_bitmaskpermission_bitmask Se applicabile, visualizza le autorizzazioni concesse, negate o revocate.When applicable, shows the permissions that were granted, denied, or revoked bigintbigint NoNo
is_column_permissionis_column_permission Flag indicante un'autorizzazione a livello di colonna.Flag indicating a column level permission bitbit
- 1 = True– 1 = True,
0 = False0 = False
NoNo
session_idsession_id ID della sessione in cui si è verificato l'evento.ID of the session on which the event occurred. intint Yes
server_principal_idserver_principal_id ID del contesto dell'account di accesso utilizzato per eseguire l'azione.ID of the login context that the action is performed in. intint Yes
database_principal_iddatabase_principal_id ID del contesto dell'utente del database in cui viene eseguita l'azione.ID of the database user context that the action is performed in. intint NoNo
object_idobject_ id ID primario dell'entità in cui si è verificato il controllo.The primary ID of the entity on which the audit occurred. L'ID può essere:This ID can be:

oggetti serverserver objects

databasedatabases

oggetti di databasedatabase objects

oggetti dello schemaschema objects
intint NoNo
target_server_principal_idtarget_server_principal_id Entità server cui si applica l'azione controllabile.Server principal that the auditable action applies to. intint Yes
target_database_principal_idtarget_database_principal_id Entità di database cui si applica l'azione controllabile.Database principal that the auditable action applies to. intint NoNo
class_typeclass_type Tipo di entità controllabile in cui si verifica il controllo.Type of auditable entity that the audit occurs on. varchar(2)varchar(2) Yes
session_server_principal_namesession_server_principal_name Entità server per la sessione.Server principal for the session. sysnamesysname Yes
server_principal_nameserver_principal_name Account di accesso corrente.Current login. sysnamesysname Yes
server_principal_sidserver_principal_sid SID dell'account di accesso corrente.Current login SID. varbinaryvarbinary Yes
database_principal_namedatabase_principal_name Utente corrente.Current user. sysnamesysname NoNo
target_server_principal_nametarget_server_principal_name Account di accesso di destinazione dell'azione.Target login of the action. sysnamesysname NoNo
target_server_principal_sidtarget_server_principal_sid SID dell'account di accesso di destinazione.SID of the target login. varbinaryvarbinary NoNo
target_database_principal_nametarget_database_principal_name Utente di destinazione dell'azione.Target user of the action. sysnamesysname NoNo
server_instance_nameserver_instance_name Nome dell'istanza del server in cui si è verificato il controllo.Name of the server instance where the audit occurred. Viene utilizzato il formato standard computer\istanza.Uses the standard machine\instance format. nvarchar(120)nvarchar(120) Yes
database_namedatabase_name Contesto del database in cui si è verificata l'azione.The database context in which the action occurred. sysnamesysname NoNo
schema_nameschema_name Contesto dello schema in cui si è verificata l'azione.The schema context in which the action occurred. sysnamesysname NoNo
object_nameobject_name Nome dell'entità in cui si è verificato il controllo.The name of the entity on which the audit occurred. Il nome può essere:This name can be:

oggetti serverserver objects

databasedatabases

oggetti di databasedatabase objects

oggetti dello schemaschema objects

istruzione TSQL (se presente)TSQL statement (if any)
sysnamesysname NoNo
istruzionestatement istruzione TSQL (se presente)TSQL statement (if any) nvarchar(4000)nvarchar(4000) NoNo
additional_informationadditional_information Qualsiasi informazione aggiuntiva sull'evento, archiviata in formato XML.Any additional information about the event, stored as XML. nvarchar(4000)nvarchar(4000) NoNo

OsservazioniRemarks

Alcune azioni non consentono l'inserimento di un valore di colonna perché il valore potrebbe non essere valido per l'azione.Some actions do not populate a column's value because it might be non-applicable to the action.

SQL ServerSQL Server Audit archivia 4000 caratteri di dati per ogni campo di tipo carattere in un record di controllo. Audit stores 4000 characters of data for character fields in an audit record. Quando i valori additional_information e statement restituiti da un'azione controllabile sono costituiti da più di 4000 caratteri, viene usata 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.When the additional_information and statement values returned from an auditable action return more than 4000 characters, the sequence_no column is used to write multiple records into the audit report for a single audit action to record this data. Il processo è il seguente:The process is as follows:

  • La colonna statement viene divisa in 4000 caratteri.The statement column is divided into 4000 characters.

  • SQL ServerSQL Server Audit scrive i dati parziali come prima riga del record di controllo. Audit writes as the first row for the audit record with the partial data. Tutti gli altri campi vengono duplicati in ogni riga.All the other fields are duplicated in each row.

  • Viene incrementato il valore di sequence_no .The sequence_no value is incremented.

  • Questo processo viene ripetuto fino a registrare tutti i dati.This process is repeated until all the data is recorded.

    È possibile connettere i dati leggendo le righe in sequenza con il valore sequence_no e le colonne event_Time, action_id e session_id per identificare l'azione.You can connect the data by reading the rows sequentially using the sequence_no value, and the event_Time, action_id and session_id columns to identify the action.

CREATE SERVER AUDIT (Transact-SQL)CREATE SERVER AUDIT (Transact-SQL)

ALTER SERVER AUDIT (Transact-SQL)ALTER SERVER AUDIT (Transact-SQL)

DROP SERVER AUDIT (Transact-SQL)DROP SERVER AUDIT (Transact-SQL)

CREATE SERVER AUDIT SPECIFICATION (Transact-SQL)CREATE SERVER AUDIT SPECIFICATION (Transact-SQL)

ALTER SERVER AUDIT SPECIFICATION (Transact-SQL)ALTER SERVER AUDIT SPECIFICATION (Transact-SQL)

DROP SERVER AUDIT SPECIFICATION (Transact-SQL)DROP SERVER AUDIT SPECIFICATION (Transact-SQL)

CREATE DATABASE AUDIT SPECIFICATION (Transact-SQL)CREATE DATABASE AUDIT SPECIFICATION (Transact-SQL)

ALTER DATABASE AUDIT SPECIFICATION (Transact-SQL)ALTER DATABASE AUDIT SPECIFICATION (Transact-SQL)

DROP DATABASE AUDIT SPECIFICATION (Transact-SQL)DROP DATABASE AUDIT SPECIFICATION (Transact-SQL)

ALTER AUTHORIZATION (Transact-SQL)ALTER AUTHORIZATION (Transact-SQL)

sys.fn_get_audit_file (Transact-SQL)sys.fn_get_audit_file (Transact-SQL)

sys.server_audits (Transact-SQL)sys.server_audits (Transact-SQL)

sys.server_file_audits (Transact-SQL)sys.server_file_audits (Transact-SQL)

sys.server_audit_specifications (Transact-SQL)sys.server_audit_specifications (Transact-SQL)

sys.server_audit_specification_details (Transact-SQL)sys.server_audit_specification_details (Transact-SQL)

sys.database_audit_specifications (Transact-SQL)sys.database_audit_specifications (Transact-SQL)

sys.database_audit_specification_details (Transact-SQL)sys.database_audit_specification_details (Transact-SQL)

sys.dm_server_audit_status (Transact-SQL)sys.dm_server_audit_status (Transact-SQL)

sys.dm_audit_actions (Transact-SQL)sys.dm_audit_actions (Transact-SQL)

sys.dm_audit_class_type_map (Transact-SQL)sys.dm_audit_class_type_map (Transact-SQL)