Formato del log di controllo del database SQL

Si applica a: Database SQL di Azure Istanza gestita di SQL di Azure Azure Synapse Analytics

Il controllo del database SQL di Azure tiene traccia degli eventi che si verificano nel database e li registra in un log di controllo nell'account di archiviazione di Azure, o li invia a Hub eventi o Log Analytics per l'elaborazione downstream e l'analisi.

Convenzioni di denominazione

Controllo BLOB

I log di controllo archiviati nell'archiviazione BLOB di Azure vengono archiviati in un contenitore denominato sqldbauditlogs nell’account di archiviazione di Azure. La gerarchia delle directory all'interno del contenitore è nel formato <ServerName>/<DatabaseName>/<AuditName>/<Date>/. Il formato del nome file BLOB è <CreationTime>_<FileNumberInSession>.xel, dove CreationTime è in formato UTC hh_mm_ss_ms e FileNumberInSession è un indice di esecuzione nel caso in cui i log di sessione si estendano su più file BLOB.

Ad esempio, per il database Database1 nel Server1, il seguente è un possibile percorso valido:

Server1/Database1/SqlDbAuditing_ServerAudit_NoRetention/2019-02-03/12_23_30_794_0.xel

I log di controllo delle repliche di sola lettura vengono archiviati nello stesso contenitore. La gerarchia delle directory all'interno del contenitore è nel formato <ServerName>/<DatabaseName>/<AuditName>/<Date>/RO/. Il nome del file BLOB condivide lo stesso formato. I log di controllo delle repliche di sola lettura vengono archiviati nello stesso contenitore.

Hub eventi

Gli eventi di controllo vengono scritti nello spazio dei nomi e nell'hub eventi definito durante la configurazione di controllo e vengono acquisiti nel corpo degli eventi Apache Avro e archiviati usando la formattazione JSON con la codifica UTF-8. Per leggere i log di controllo, è possibile usare Avro Tools o strumenti simili in grado di elaborare tale formato.

Log Analytics

Gli eventi di controllo vengono scritti nell'area di lavoro Log Analytics definita durante la configurazione del controllo, nella tabella AzureDiagnostics con la categoria SQLSecurityAuditEvents, e la tabella con la categoria DevOpsOperationsAudit per le Operazioni di supporto tecnico Microsoft. Per altre informazioni utili sul linguaggio di ricerca e i comandi di Log Analytics, vedere Guida di riferimento alla ricerca in Log Analytics.

Campi del log di controllo

Nome (BLOB) Nome (Hub eventi/Log Analytics) Descrizione Tipo di BLOB Tipo di Hub eventi/Log Analytics
action_id action_id_s ID dell'azione. varchar(4) string
action_name action_name_s Nome dell'azione N/D string
additional_information additional_information_s Qualsiasi informazione aggiuntiva sull'evento, archiviata in formato XML nvarchar(4000) string
affected_rows affected_rows_d Numero di righe interessate dalla query bigint int
application_name application_name_s Nome dell’applicazione client nvarchar(128) string
audit_schema_version audit_schema_version_d Sempre 1 int int
class_type class_type_s Tipo di entità controllabile in cui si verifica il controllo varchar(2) string
class_type_desc class_type_description_s Descrizione dell’entità controllabile in cui si verifica il controllo N/D string
client_ip client_ip_s IP sorgente dell’applicazione client nvarchar(128) string
connection_id N/D ID della connessione nel server GUID N/D
data_sensitivity_information data_sensitivity_information_s Tipi di informazioni ed etichette di riservatezza restituite dalla query di controllo, in base alle colonne classificate nel database. Informazioni sull'individuazione e la classificazione dei dati nel database SQL di Azure nvarchar(4000) string
database_name database_name_s Contesto del database in cui si è verificata l'azione sysname string
database_principal_id database_principal_id_d ID del contesto dell'utente del database in cui viene eseguita l'azione int int
database_principal_name database_principal_name_s Nome del contesto dell'utente del database in cui viene eseguita l'azione sysname string
duration_milliseconds duration_milliseconds_d Durata dell’esecuzione della query in millisecondi bigint int
event_time event_time_t Data e ora di attivazione dell'azione controllabile datetime2 datetime
host_name N/D Nome host del client string N/D
is_column_permission is_column_permission_s Flag che indica se si tratta di un'autorizzazione a livello di colonna. 1 = true, 0 = false bit string
N/D is_server_level_audit_s Flag che indica se questo controllo è a livello di server N/D string
object_id object_id_d ID dell'entità in cui si è verificato il controllo. Sono inclusi gli oggetti server, i database, gli oggetti di database e gli oggetti dello schema. 0 se l'entità è il server stesso o se il controllo non viene eseguito a livello di oggetto int int
object_name object_name_s Nome dell'entità in cui si è verificato il controllo. Sono inclusi gli oggetti server, i database, gli oggetti di database e gli oggetti dello schema. 0 se l'entità è il server stesso o se il controllo non viene eseguito a livello di oggetto sysname string
obo_middle_tier_app_id obo_middle_tier_app_id_s ID applicazione dell'applicazione di livello intermedio connessa a database SQL tramite l'accesso OBO. varchar(120) string
permission_bitmask permission_bitmask_s Se applicabile, visualizza le autorizzazioni concesse, negate o revocate. varbinary(16) string
response_rows response_rows_d Numero di righe restituite nel set di risultati bigint int
schema_name schema_name_s Contesto dello schema in cui si è verificata l'azione. NULL per i controlli che si verificano al di fuori di uno schema sysname string
N/D securable_class_type_s Oggetto a protezione diretta che esegue il mapping al campo class_type controllato N/D string
sequence_group_id sequence_group_id_g Identificatore univoco varbinary GUID
sequence_number sequence_number_d 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. Notare che il controllo del database SQL di Azure e di Azure Synapse archivia 4000 caratteri di dati per i campi di tipo carattere in un record di controllo. Quando sono presenti più di 4000 caratteri, tutti i dati oltre i primi 4000 caratteri verranno troncati int int
server_instance_name server_instance_name_s Nome dell'istanza del server in cui si è verificato il controllo sysname string
server_principal_id server_principal_id_d ID del contesto dell'account di accesso utilizzato per eseguire l'azione int int
server_principal_name server_principal_name_s Account di accesso corrente sysname string
server_principal_sid server_principal_sid_s SID dell'account di accesso corrente varbinary string
session_id session_id_d ID della sessione in cui si è verificato l'evento smallint int
session_server_principal_name session_server_principal_name_s Entità server per la sessione sysname string
statement statement_s Istruzione T-SQL eseguita (se disponibile) nvarchar(4000) string
succeeded succeeded_s Indica se l'azione che ha generato l'evento è riuscita. Per gli eventi diversi da accesso e batch, riporta solo l'esito del controllo dell'autorizzazione, non l'operazione. 1 = Esito positivo, 0 = Esito negativo bit string
target_database_principal_id target_database_principal_id_d Entità database su cui viene eseguita un'operazione GRANT/DENY/REVOKE. 0 se non applicabile int int
target_database_principal_name target_database_principal_name_s Utente di destinazione dell'azione. Se questo attributo non è applicabile, il valore è NULL string string
target_server_principal_id target_server_principal_id_d Entità server su cui viene eseguita un'operazione GRANT/DENY/REVOKE. Se non applicabile, restituisce 0 int int
target_server_principal_name target_server_principal_name_s Account di accesso di destinazione dell'azione. Se questo attributo non è applicabile, il valore è NULL sysname string
target_server_principal_sid target_server_principal_sid_s SID dell'account di accesso di destinazione. Se questo attributo non è applicabile, il valore è NULL varbinary string
transaction_id transaction_id_d Solo SQL Server (a partire dalla versione 2016) - 0 per database SQL di Azure bigint int
user_defined_event_id user_defined_event_id_d ID evento definito dall'utente passato come argomento a sp_audit_write. NULL per gli eventi di sistema (impostazione predefinita) e diverso da zero per l'evento definito dall'utente. Per altre informazioni, vedere sp_audit_write (Transact-SQL) smallint int
user_defined_information user_defined_information_s Informazioni definite dall'utente passate come argomento a sp_audit_write. NULL per gli eventi di sistema (impostazione predefinita) e diverso da zero per l'evento definito dall'utente. Per altre informazioni, vedere sp_audit_write (Transact-SQL) nvarchar(4000) string

Passaggi successivi

Altre informazioni sul controllo del database SQL di Azure.