Auditoria no MySQL com Percona Audit Log Plugin: rastreando todas as atividades do banco

Em ambientes de banco de dados críticos, não basta apenas armazenar informações — é fundamental garantir visibilidade completa sobre as operações realizadas, incluindo quem executou, o que foi executado, quando ocorreu e em qual contexto.

Nesse cenário, a auditoria deixa de ser um diferencial e passa a ser um requisito essencial para segurança, governança e conformidade.

O Audit Log Plugin, disponível no Percona Server for MySQL e também na edição Enterprise do MySQL, oferece um mecanismo eficiente e estruturado para o registro de atividades no banco de dados.
Com ele, é possível obter rastreabilidade detalhada das operações, facilitar análises forenses e atender requisitos regulatórios como LGPD e políticas internas de auditoria.


O que é o Audit Log Plugin?

O Audit Log Plugin é um mecanismo que registra eventos ocorridos no banco de dados, como:

  • Execução de queries (SELECT, INSERT, UPDATE, DELETE)
  • Criação e alteração de objetos (DDL)
  • Conexões e sessões de usuários

Diferente de logs tradicionais, ele permite controle granular, incluindo filtros por usuário e definição do tipo de evento a ser auditado.


Por que utilizar auditoria?

A auditoria não é apenas uma prática recomendada — em muitos cenários ela é obrigatória.

Com o Audit Log, é possível:

  • Identificar alterações indevidas
  • Rastrear atividades suspeitas
  • Atender requisitos de auditoria (LGPD, compliance)
  • Apoiar análises forenses em incidentes

Audit Log vs General Log

Uma abordagem comum para capturar atividades no MySQL é a utilização do General Log, que registra todas as conexões e queries executadas no servidor.
Embora simples de ativar, essa solução possui limitações importantes quando utilizada fora de cenários pontuais.

O Audit Log Plugin, por outro lado, foi projetado especificamente para auditoria, oferecendo maior controle, estrutura e eficiência.

Comparativo técnico

Aspecto Audit Log General Log
Estrutura JSON, XML, CSV (estruturado) Texto simples
Filtro por usuário Sim (granular) Não
Controle de eventos Sim (queries, conexões, etc.) Não
Performance Otimizado para auditoria Alto overhead
Rotação de logs Nativa Manual
Uso em produção Recomendado Não recomendado

Quando usar cada um?

O General Log pode ser útil em cenários específicos, como:

  • Debug de aplicações
  • Análise rápida de queries
  • Diagnóstico pontual em ambiente controlado

No entanto, por registrar todas as operações sem filtro, seu uso contínuo em produção pode causar:

  • Alto consumo de disco
  • Impacto significativo de performance
  • Dificuldade de análise devido ao volume de dados

Por que o Audit Log é mais adequado?

O Audit Log Plugin foi desenvolvido com foco em auditoria e segurança, permitindo:

  • Filtragem por usuário ou tipo de evento
  • Registro estruturado (facilitando parsing e integração)
  • Controle de volume de dados gerados
  • Melhor previsibilidade de impacto no ambiente

Na prática, isso permite implementar auditoria de forma sustentável, mesmo em ambientes com alta carga.


Ambiente e preparação

Para este laboratório, foi utilizado o Percona Server for MySQL 8.0 em ambiente Linux, com inicialização manual da instância e configuração personalizada.

O passo a passo completo (download, configuração e inicialização) :

Extruturas de diretorios

My.cnf

Incialização e Serviço

 


Instalação do plugin

Após a inicialização do banco, o plugin pode ser instalado dinamicamente:

 

A validação pode ser feita via:

 


Demonstração prática

Após a ativação do plugin, qualquer ação executada pode ser auditada.

Exemplo:

Essas operações geram registros como:

 
 

 

Esse tipo de registro permite identificar claramente:

  • Usuário responsável
  • Tipo de operação
  • Comando executado
  • Momento da execução

Formatos de saída

O Audit Log Plugin suporta múltiplos formatos, cada um com seu caso de uso.

XML  NEW

Formato estruturado e detalhado, porém mais verboso.

CSV

Indicado para importação rápida em ferramentas externas.

JSON (recomendado)

Exemplo:

O formato JSON facilita integração com soluções de observabilidade.

Imagens:

 


Configuração avançada

Uma das grandes vantagens do Audit Log é a flexibilidade de configuração.

Filtro por usuário

Permite auditar apenas usuários específicos, reduzindo volume de logs.


Política de auditoria

Define quais eventos serão capturados.

Nesse caso, apenas queries (SELECT + DML).


Configuração recomendada

Essa configuração garante:

  • Persistência imediata
  • Formato estruturado
  • Facilidade de integração

Considerações finais

O uso do Audit Log Plugin é altamente recomendado em ambientes que exigem controle, rastreabilidade e governança sobre as operações realizadas no banco de dados.

Quando devidamente configurado, o recurso:

  • Apresenta baixo impacto de performance
  • Fornece visibilidade detalhada das operações
  • Permite auditoria seletiva, reduzindo volume e ruído nos logs

Todos os procedimentos, comandos e configurações apresentados neste artigo foram validados em ambiente de laboratório executando Oracle Linux 8.10, com 4 GB de memória RAM, utilizando o Percona Server for MySQL versão 8.0.44-35 (Release 35), garantindo consistência e reprodutibilidade dos testes realizados.

Ressalta-se que os cenários apresentados tiveram caráter demonstrativo. Em ambientes de produção, é fundamental realizar análises adicionais, incluindo avaliação de carga, volume de logs gerados, estratégia de retenção, impacto em disco e adequação das políticas de auditoria às necessidades específicas do negócio.

 

Referência

https://docs.percona.com/percona-server/8.0/audit-log-plugin.html

https://dev.mysql.com/doc/refman/8.0/en/audit-log.html

COMPARTILHE:
Picture of Marcio

Marcio

Minha paixão por tecnologia e minhas habilidades em resolução de problemas me permitem enfrentar desafios complexos e entregar soluções de banco de dados de alta qualidade. Estou sempre ávido por aprender e me manter atualizado com as últimas tendências em administração de banco de dados.
Picture of Marcio

Marcio

Minha paixão por tecnologia e minhas habilidades em resolução de problemas me permitem enfrentar desafios complexos e entregar soluções de banco de dados de alta qualidade. Estou sempre ávido por aprender e me manter atualizado com as últimas tendências em administração de banco de dados.

PARTICIPE

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

POSTADO POR
Picture of Marcio

Marcio

Minha paixão por tecnologia e minhas habilidades em resolução de problemas me permitem enfrentar desafios complexos e entregar soluções de banco de dados de alta qualidade. Estou sempre ávido por aprender e me manter atualizado com as últimas tendências em administração de banco de dados.
PARCEIROS