Formato del log di controllo del database SQL

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

database SQL di Azure il controllo tiene traccia degli eventi del database e li scrive in un log di controllo nell'account di archiviazione di Azure oppure li invia a Hub eventi o Log Analytics per l'elaborazione e l'analisi downstream.

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 di 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 ed FileNumberInSession è un indice in esecuzione nel caso in cui i log di sessione si estendono su più file BLOB.

Ad esempio, per il database Database1 nel Server1 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 di 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 AzureDiagnostics tabella con la categoria SQLSecurityAuditEventse la tabella con la categoria DevOpsOperationsAudit per supporto tecnico Microsoft Operazioni. 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) stringa
action_name action_name_s Nome dell'azione N/D stringa
additional_information additional_information_s Eventuali informazioni aggiuntive sull'evento, archiviate come XML nvarchar(4000) stringa
affected_rows affected_rows_d Numero di righe interessate dalla query bigint int
application_name application_name_s Nome dell'applicazione client nvarchar(128) stringa
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) stringa
class_type_desc class_type_description_s Descrizione dell'entità controllabile in cui si verifica il controllo N/D stringa
client_ip client_ip_s IP di origine dell'applicazione client nvarchar(128) stringa
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 restituiti dalla query controllate, in base alle colonne classificate nel database. Altre informazioni sull'individuazione e la classificazione dei dati di database SQL di Azure nvarchar(4000) stringa
database_name database_name_s Contesto del database in cui si è verificata l'azione sysname stringa
database_principal_id database_principal_id_d ID del contesto utente del database in cui viene eseguita l'azione int int
database_principal_name database_principal_name_s Nome del contesto utente del database in cui viene eseguita l'azione sysname stringa
duration_milliseconds duration_milliseconds_d Durata dell'esecuzione delle query in millisecondi bigint int
event_time event_time_t Data e ora in cui viene attivata l'azione controllabile datetime2 data/ora
host_name N/D Nome host del client stringa 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 stringa
N/D is_server_level_audit_s Flag che indica se questo controllo è a livello di server N/D stringa
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 stringa
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) stringa
permission_bitmask permission_bitmask_s Se applicabile, visualizza le autorizzazioni concesse, negate o revocate. varbinary(16) stringa
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 all'esterno di uno schema sysname stringa
N/D securable_class_type_s Oggetto a protezione diretta mappato al class_type sottoposto a controllo N/D stringa
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. Si noti che database SQL di Azure e Azure Synapse Audit 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 stringa
server_principal_id server_principal_id_d ID del contesto di accesso in cui viene eseguita l'azione int int
server_principal_name server_principal_name_s Account di accesso corrente sysname stringa
server_principal_sid server_principal_sid_s SID di accesso corrente varbinary stringa
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 stringa
statement statement_s Istruzione T-SQL eseguita (se disponibile) nvarchar(4000) stringa
succeeded succeeded_s Indica se l'azione che ha generato l'evento è riuscita. Per gli eventi diversi da login e batch, questo segnala solo se il controllo delle autorizzazioni è riuscito o non è riuscito, non l'operazione. 1 = esito positivo, 0 = esito negativo bit stringa
target_database_principal_id target_database_principal_id_d L'entità di database su cui viene eseguita l'operazione GRANT/DENY/REVOKE. 0 se non applicabile int int
target_database_principal_name target_database_principal_name_s Utente di destinazione dell'azione. NULL se non applicabile stringa stringa
target_server_principal_id target_server_principal_id_d Entità server su cui viene eseguita un'operazione GRANT/DENY/REVOKE. Restituisce 0 se non applicabile int int
target_server_principal_name target_server_principal_name_s Account di accesso di destinazione dell'azione. NULL se non applicabile sysname stringa
target_server_principal_sid target_server_principal_sid_s SID dell'account di accesso di destinazione. NULL se non applicabile varbinary stringa
transaction_id transaction_id_d Solo SQL Server (a partire dal 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) stringa

Passaggi successivi

Altre informazioni sul controllo database SQL di Azure.