Como consultar o histórico de alterações (binlog) do MySQL para auditoria imprimir

  • 0

O que é o binlog e por que ele interessa a você

Olá! Aqui é a Sensei da GeHost 🌱 Hoje vamos falar de um assunto que parece "de programador", mas que no fundo é bem simples de entender: o binlog (binary log) do MySQL.

Pensa assim: toda vez que alguém insere, altera ou apaga um dado num banco MySQL, o servidor de banco de dados anota essa ação num registro interno chamado binlog. É como um "diário de bordo" do banco — serve pra recuperação de dados em caso de falha e, sim, também pode ajudar numa auditoria: "quem mudou o quê, e quando?".

Até aqui, tudo bonito. Mas antes de você sair procurando esse arquivo no seu site, preciso te contar uma coisa importante — com carinho, mas com honestidade. 😊

A realidade da hospedagem compartilhada

O binlog não é um arquivo "da sua conta" — ele é um recurso do servidor de banco de dados como um todo, que pode ser compartilhado por várias contas de hospedagem ao mesmo tempo. Por isso, ler o binlog diretamente exige privilégios de administração do servidor de banco (algo como abrir a "sala de máquinas" do prédio, não só a sua unidade).

Os planos de hospedagem da GeHost rodam em ambiente cPanel compartilhado, então esse tipo de acesso de servidor não faz parte do que a sua conta individual consegue abrir sozinha — e isso é assim por segurança de todo mundo que divide o mesmo servidor, não é uma limitação "só sua".

Dica da Sensei: se você precisa investigar um incidente específico (ex.: "sumiu um registro na quinta-feira à noite, o que aconteceu?"), abra um chamado com o suporte contando data, hora aproximada e o banco/tabela envolvidos. Nossa equipe pode verificar o que for possível no nível do servidor.

Seu "livro de auditoria" caseiro (e esse aqui você controla 100%)

A boa notícia: você não precisa do binlog do servidor pra ter uma auditoria útil e sob seu controle. Dentro do seu próprio banco de dados, você pode criar uma tabela de auditoria e usar triggers (gatilhos) do MySQL — isso sim faz parte da sua conta e você consegue configurar pela ferramenta de Bancos de Dados MySQL / phpMyAdmin do cPanel.

Tela Bancos de Dados MySQL do cPanel, com opções de criar banco e gerenciar usuários

Passo a passo

  1. No cPanel, acesse Bancos de Dados MySQL e confirme qual é o banco que você quer auditar (ou entre direto pelo phpMyAdmin, também disponível no cPanel).
  2. Dentro do phpMyAdmin, selecione o seu banco de dados e crie uma tabela nova, por exemplo auditoria_log, com colunas simples: id, tabela_afetada, tipo_acao, dados_antigos, dados_novos e data_hora.
  3. Ainda no phpMyAdmin, use a aba SQL para criar um trigger na tabela que você quer monitorar (por exemplo, "AFTER UPDATE" ou "AFTER DELETE"), fazendo com que cada alteração grave automaticamente uma linha na sua tabela de auditoria.
  4. Pronto! A partir daí, toda alteração feita naquela tabela fica registrada — e você consulta a tabela auditoria_log a qualquer momento, direto pelo phpMyAdmin, sem depender de ninguém.

Se você não se sentir confortável escrevendo o SQL do trigger sozinho(a), pode pedir apoio ao seu desenvolvedor ou, dentro do período de suporte gratuito após a entrega, à nossa equipe.

Não esqueça do backup — ele também é auditoria

Uma auditoria também serve pra "voltar no tempo" e comparar como os dados estavam antes. Pra isso, o cPanel tem a ferramenta de Backup, onde você pode gerar backups completos ou parciais (de um banco específico) e guardá-los como referência histórica.

Tela de Backup do cPanel com opções de backup completo e backups parciais de banco de dados
Dica da Sensei: gere um backup do banco antes de qualquer alteração grande (uma migração, uma limpeza de dados, uma atualização de sistema). Assim, se precisar comparar "antes x depois", você tem os dois pontos no tempo salvos.

Resumindo com carinho

  • O binlog é um recurso do servidor de banco de dados, compartilhado entre contas — não é algo que a sua conta acessa diretamente.
  • Pra auditoria do seu dia a dia, crie sua própria tabela de auditoria com triggers — isso está totalmente ao seu alcance pelo phpMyAdmin.
  • Complemente com backups regulares pra ter pontos de comparação no tempo.
  • Precisa investigar algo pontual no servidor? Fale com o suporte, contando data, hora e o que foi afetado — dentro do seu período de suporte, ou consultando as condições do seu plano no painel.

Qualquer dúvida, você já sabe: estou por aqui! 🌸


Esta resposta lhe foi útil?

« Retornar