Formato do log de auditoria do Banco de Dados SQL
Aplica-se a: Banco de Dados SQL do Azure Instância Gerenciada de SQL do Azure Azure Synapse Analytics
A auditoria do Banco de Dados SQL do Azure rastreia eventos de banco de dados e os grava em um log de auditoria na sua conta de armazenamento do Azure ou os envia ao Hub de Eventos ou Log Analytics para análise e processamento downstream.
Convenções de nomenclatura
Auditoria de blob
Os logs de auditoria do Armazenamento de Blobs do Azure são armazenados em um contêiner denominado sqldbauditlogs
na conta de armazenamento do Azure. A hierarquia de diretórios dentro do contêiner está no formato <ServerName>/<DatabaseName>/<AuditName>/<Date>/
. O formato de nome do arquivo de Blob é <CreationTime>_<FileNumberInSession>.xel
, em que CreationTime
está no formato hh_mm_ss_ms
UTC, e FileNumberInSession
é um índice em execução em casos de logs de sessão que abrangem vários arquivos de Blob.
Por exemplo, para o banco de dados Database1
em Server1
é possível o seguinte caminho válido:
Server1/Database1/SqlDbAuditing_ServerAudit_NoRetention/2019-02-03/12_23_30_794_0.xel
Os logs de auditoria de réplicas somente leitura são armazenados no mesmo contêiner. A hierarquia de diretórios dentro do contêiner está no formato <ServerName>/<DatabaseName>/<AuditName>/<Date>/RO/
. O nome do arquivo de Blob compartilha o mesmo formato. Os logs de auditoria de réplicas somente leitura são armazenados no mesmo contêiner.
Hub de evento
Os eventos de auditoria são gravados no namespace e no hub de eventos definidos durante a configuração de auditoria e são capturados no corpo de eventos do Apache Avro e armazenados usando a formatação JSON com codificação UTF-8. Para ler os logs de auditoria, você pode usar as Ferramentas Avro ou ferramentas similares que processam esse formato.
Log Analytics
Os eventos de auditoria são gravados no workspace do Log Analytics definido durante a configuração de auditoria, na tabela AzureDiagnostics
com a categoria SQLSecurityAuditEvents
e na tabela com a categoria DevOpsOperationsAudit
para as operações de Suporte da Microsoft. Para obter informações úteis adicionais sobre o idioma e os comandos de pesquisa do Log Analytics, consulte Referência de pesquisa do Log Analytics.
Campos de log de auditoria
Nome (blob) | Nome (Hubs de Eventos/Log Analytics) | Descrição | Tipo de blob | Tipo de Hubs de Eventos/Log Analytics |
---|---|---|---|---|
action_id | action_id_s | ID da ação | varchar(4) | string |
action_name | action_name_s | Nome da ação | N/D | string |
additional_information | additional_information_s | Qualquer informação adicional sobre o evento, armazenado em XML | nvarchar(4000) | string |
affected_rows | affected_rows_d | Número de linhas afetadas pela consulta | BIGINT | INT |
application_name | application_name_s | Nome do aplicativo cliente | nvarchar(128) | string |
audit_schema_version | audit_schema_version_d | Sempre 1 | INT | INT |
class_type | class_type_s | Tipo de entidade auditável no qual ocorre a auditoria | varchar(2) | string |
class_type_desc | class_type_description_s | Descrição da entidade auditável na qual a auditoria ocorre | N/D | string |
client_ip | client_ip_s | IP de origem do aplicativo cliente | nvarchar(128) | string |
connection_id | N/D | ID da conexão no servidor | GUID | N/D |
data_sensitivity_information | data_sensitivity_information_s | Tipos de informações e rótulos de confidencialidade retornados pela consulta auditada, com base nas colunas classificadas no banco de dados. Saiba mais sobre a Descoberta e classificação de dados do Banco de Dados SQL do Azure | nvarchar(4000) | string |
database_name | database_name_s | O contexto do banco de dados no qual a ação aconteceu | sysname | string |
database_principal_id | database_principal_id_d | ID do contexto do usuário de banco de dados no qual a ação é executada | INT | INT |
database_principal_name | database_principal_name_s | Nome do contexto do usuário de banco de dados no qual a ação é executada | sysname | string |
duration_milliseconds | duration_milliseconds_d | Duração da execução da consulta em milissegundos | BIGINT | INT |
event_time | event_time_t | Data e hora em que a ação auditável é acionada | datetime2 | DATETIME |
host_name | N/D | O nome do host do cliente | string | N/D |
is_column_permission | is_column_permission_s | Sinalizador que indica se esta é uma permissão no nível de coluna. 1 = verdadeiro, 0 = falso | bit | string |
N/D | is_server_level_audit_s | Sinalizador indicando se essa auditoria está no nível do servidor | N/D | string |
object_id | object_id_d | A ID da entidade na qual a auditoria ocorreu. Isso inclui: objetos de servidor, bancos de dados, objetos de banco de dados e objetos de esquema. 0 se a entidade for o próprio servidor ou se a auditoria não for realizada no nível de um objeto | INT | INT |
object_name | object_name_s | O nome da entidade na qual a auditoria ocorreu. Isso inclui: objetos de servidor, bancos de dados, objetos de banco de dados e objetos de esquema. 0 se a entidade for o próprio servidor ou se a auditoria não for realizada no nível de um objeto | sysname | string |
obo_middle_tier_app_id | obo_middle_tier_app_id_s | A ID do aplicativo de camada intermediária que se conectou ao Banco de Dados SQL usando acesso OBO. | varchar(120) | string |
permission_bitmask | permission_bitmask_s | Quando aplicável, mostra as permissões concedidas, negadas ou revogadas | varbinary(16) | string |
response_rows | response_rows_d | Número de linhas retornadas no conjunto de resultados | BIGINT | INT |
schema_name | schema_name_s | O contexto do esquema no qual a ação aconteceu. NULL para auditorias realizadas fora de um esquema | sysname | string |
N/D | securable_class_type_s | O objeto protegível que é mapeado para o class_type que está sendo auditado | N/D | string |
sequence_group_id | sequence_group_id_g | Identificador exclusivo | varbinary | GUID |
sequence_number | sequence_number_d | Rastreia a sequência de registros dentro de um único registro de auditoria que é muito grande para se ajustar no buffer de gravação das auditorias. A auditoria de Banco de Dados SQL do Azure e a Auditoria do Azure Synapse armazenam 4.000 caracteres de dados para campos de caracteres em um registro de auditoria. Quando houver mais de 4.000 caracteres, todos os dados além dos primeiros 4.000 caracteres serão truncados | INT | INT |
server_instance_name | server_instance_name_s | Nome da instância de servidor no qual a auditoria ocorreu | sysname | string |
server_principal_id | server_principal_id_d | ID do contexto de logon em que a ação é executada | INT | INT |
server_principal_name | server_principal_name_s | Logon atual | sysname | string |
server_principal_sid | server_principal_sid_s | SID do logon atual | varbinary | string |
session_id | session_id_d | ID da sessão em que ocorreu o evento | SMALLINT | INT |
session_server_principal_name | session_server_principal_name_s | Entidade de segurança do servidor da sessão | sysname | string |
instrução | statement_s | Instrução T-SQL que foi executada (se houver) | nvarchar(4000) | string |
bem-sucedido | succeeded_s | Indica se a ação que disparou o evento foi realizada com êxito. Para todos os demais eventos que não são de logon de lote, reporta somente se a verificação de permissões foi bem-sucedida ou não, e não a operação. 1 = êxito, 0 = falha | bit | string |
target_database_principal_id | target_database_principal_id_d | O banco de dados principal na operação GRANT/DENY/REVOKE é executada. 0 se não aplicável | INT | INT |
target_database_principal_name | target_database_principal_name_s | Usuário de destino da ação. NULL se não for aplicável | string | string |
target_server_principal_id | target_server_principal_id_d | Diretor de Servidor que o GRANT/operação do DENY/REVOKE é executada em. Retorna 0 se não aplicável | INT | INT |
target_server_principal_name | target_server_principal_name_s | Logon de destino da ação. NULL se não for aplicável | sysname | string |
target_server_principal_sid | target_server_principal_sid_s | SID do logon de destino. NULL se não for aplicável | varbinary | string |
transaction_id | transaction_id_d | Somente SQL Server (começando com 2016) – 0 para o Banco de Dados SQL do Azure | BIGINT | INT |
user_defined_event_id | user_defined_event_id_d | ID de evento definido pelo usuário passada como um argumento a sp_audit_write. NULL para eventos do sistema (padrão) e diferente de zero para eventos definidos pelo usuário. Para obter mais informações, confira sp_audit_write (Transact-SQL) | SMALLINT | INT |
user_defined_information | user_defined_information_s | Informação definida pelo usuário passada como um argumento a sp_audit_write. NULL para eventos do sistema (padrão) e diferente de zero para eventos definidos pelo usuário. Para obter mais informações, confira sp_audit_write (Transact-SQL) | nvarchar(4000) | string |
Próximas etapas
Saiba mais sobre a auditoria do Banco de Dados SQL do Azure.