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.