Logs de auditoria no Banco de Dados do Azure para MariaDB
Importante
O Banco de Dados do Azure para MariaDB está no caminho da aposentadoria. É altamente recomendável migrar para o Banco de Dados do Azure para MySQL. Para obter mais informações sobre como migrar para o Banco de Dados do Azure para MySQL, consulte O que está acontecendo com o Banco de Dados do Azure para MariaDB?.
No Banco de Dados do Azure para MariaDB, o log de auditoria está disponível para os usuários. O log de auditoria pode ser usado para rastrear a atividade no nível do banco de dados e é comumente usado para fins de conformidade.
Configurar log de auditoria
Importante
Recomenda-se registar apenas os tipos de eventos e os utilizadores obrigatórios para os fins de auditoria, de forma a garantir que o desempenho do servidor não é muito afetado.
Por padrão, o log de auditoria está desativado. Para habilitá-lo, defina audit_log_enabled
como ON.
Outros parâmetros que você pode ajustar incluem:
audit_log_events
: Controla os eventos a serem registrados. Consulte a tabela abaixo para eventos de auditoria específicos.audit_log_include_users
: Usuários do MariaDB a serem incluídos para registro. O valor padrão para esse parâmetro é vazio, que incluirá todos os usuários para registro. Isto tem maior prioridade sobre oaudit_log_exclude_users
. O comprimento máximo do parâmetro é de 512 caracteres.audit_log_exclude_users
: Usuários do MariaDB a serem excluídos do registro. Permite no máximo quatro usuários. O comprimento máximo do parâmetro é de 256 caracteres.
Nota
audit_log_include_users
tem maior prioridade sobre audit_log_exclude_users
. Por exemplo, se audit_log_include_users
= demouser
e audit_log_exclude_users
= demouser
, o usuário será incluído nos logs de auditoria porque audit_log_include_users
tem prioridade mais alta.
Evento | Descrição |
---|---|
CONNECTION |
- Início da conexão (bem-sucedida ou não) - Reautenticação do usuário com usuário / senha diferente durante a sessão - Terminação da ligação |
DML_SELECT |
SELECIONAR consultas |
DML_NONSELECT |
Consultas INSERIR/EXCLUIR/ATUALIZAR |
DML |
DML = DML_SELECT + DML_NONSELECT |
DDL |
Consultas como "DROP DATABASE" |
DCL |
Consultas como "CONCEDER PERMISSÃO" |
ADMIN |
Consultas como "MOSTRAR STATUS" |
GENERAL |
Tudo em DML_SELECT, DML_NONSELECT, DML, DDL, DCL e ADMIN |
Aceder aos registos de auditoria
Os registos de auditoria estão integrados nos Registos de Diagnósticos do Azure Monitor. Depois de ter ativado os registos de auditoria no servidor MariaDB, pode emiti-los para os registos do Azure Monitor, os Hubs de Eventos ou o Armazenamento Azure. Para saber mais sobre como habilitar logs de diagnóstico no portal do Azure, consulte o artigo do portal de log de auditoria.
Esquemas de logs de diagnóstico
As seções a seguir descrevem o que é gerado pelos logs de auditoria do MariaDB com base no tipo de evento. Dependendo do método de saída, os campos incluídos e a ordem em que aparecem podem variar.
Connection
Propriedade | Descrição |
---|---|
TenantId |
O seu ID de inquilino |
SourceSystem |
Azure |
TimeGenerated [UTC] |
Carimbo de data/hora quando o log foi gravado em UTC |
Type |
Tipo de log. Sempre AzureDiagnostics |
SubscriptionId |
GUID para a assinatura à qual o servidor pertence |
ResourceGroup |
Nome do grupo de recursos ao qual o servidor pertence |
ResourceProvider |
Nome do provedor de recursos. Sempre MICROSOFT.DBFORMARIADB |
ResourceType |
Servers |
ResourceId |
URI do recurso |
Resource |
Nome do servidor |
Category |
MySqlAuditLogs |
OperationName |
LogEvent |
event_class_s |
connection_log |
event_subclass_s |
CONNECT , DISCONNECT |
connection_id_d |
ID de conexão exclusivo gerado pelo MariaDB |
host_s |
Em branco |
ip_s |
Endereço IP do cliente que se conecta ao MariaDB |
user_s |
Nome do usuário que executa a consulta |
db_s |
Nome da base de dados ligada a |
\_ResourceId |
URI do recurso |
Geral
O esquema abaixo se aplica aos tipos de eventos GENERAL, DML_SELECT, DML_NONSELECT, DML, DDL, DCL e ADMIN.
Nota
Para sql_text
, o log será truncado se exceder 2048 caracteres.
Propriedade | Descrição |
---|---|
TenantId |
O seu ID de inquilino |
SourceSystem |
Azure |
TimeGenerated [UTC] |
Carimbo de data/hora quando o log foi gravado em UTC |
Type |
Tipo de log. Sempre AzureDiagnostics |
SubscriptionId |
GUID para a assinatura à qual o servidor pertence |
ResourceGroup |
Nome do grupo de recursos ao qual o servidor pertence |
ResourceProvider |
Nome do provedor de recursos. Sempre MICROSOFT.DBFORMARIADB |
ResourceType |
Servers |
ResourceId |
URI do recurso |
Resource |
Nome do servidor |
Category |
MySqlAuditLogs |
OperationName |
LogEvent |
LogicalServerName_s |
Nome do servidor |
event_class_s |
general_log |
event_subclass_s |
LOG , , ERROR RESULT |
event_time |
Segundos de início de consulta no carimbo de data/hora do UNIX |
error_code_d |
Código de erro se a consulta falhar. 0 significa que não há erro |
thread_id_d |
ID do thread que executou a consulta |
host_s |
Em branco |
ip_s |
Endereço IP do cliente que se conecta ao MariaDB |
user_s |
Nome do usuário que executa a consulta |
sql_text_s |
Texto completo da consulta |
\_ResourceId |
URI do recurso |
Analisar logs nos Logs do Azure Monitor
Depois que seus logs de auditoria são canalizados para os Logs do Azure Monitor por meio dos Logs de Diagnóstico, você pode executar análises adicionais de seus eventos auditados. Abaixo estão alguns exemplos de consultas para ajudá-lo a começar. Certifique-se de atualizar o abaixo com o nome do servidor.
Listar eventos GERAIS em um servidor específico
AzureDiagnostics | where LogicalServerName_s == '<your server name>' | where Category == 'MySqlAuditLogs' and event_class_s == "general_log" | project TimeGenerated, LogicalServerName_s, event_class_s, event_subclass_s, event_time_t, user_s , ip_s , sql_text_s | order by TimeGenerated asc nulls last
Listar eventos CONNECTION em um servidor específico
AzureDiagnostics | where LogicalServerName_s == '<your server name>' | where Category == 'MySqlAuditLogs' and event_class_s == "connection_log" | project TimeGenerated, LogicalServerName_s, event_class_s, event_subclass_s, event_time_t, user_s , ip_s , sql_text_s | order by TimeGenerated asc nulls last
Resumir eventos auditados em um servidor específico
AzureDiagnostics | where LogicalServerName_s == '<your server name>' | where Category == 'MySqlAuditLogs' | project TimeGenerated, LogicalServerName_s, event_class_s, event_subclass_s, event_time_t, user_s , ip_s , sql_text_s | summarize count() by event_class_s, event_subclass_s, user_s, ip_s
Representar graficamente a distribuição do tipo de evento de auditoria em um servidor específico
AzureDiagnostics | where LogicalServerName_s == '<your server name>' | where Category == 'MySqlAuditLogs' | project TimeGenerated, LogicalServerName_s, event_class_s, event_subclass_s, event_time_t, user_s , ip_s , sql_text_s | summarize count() by LogicalServerName_s, bin(TimeGenerated, 5m) | render timechart
Listar eventos auditados em todos os servidores MariaDB com Logs de diagnóstico habilitados para logs de auditoria
AzureDiagnostics | where Category == 'MySqlAuditLogs' | project TimeGenerated, LogicalServerName_s, event_class_s, event_subclass_s, event_time_t, user_s , ip_s , sql_text_s | order by TimeGenerated asc nulls last