Pergunta

Me pediram para auditar quaisquer / todas as alterações em uma tabela MySQL. Alguém sabe de quaisquer ferramentas lá fora para me ajudar a fazer isso ou que eu preciso para escrever a minha própria solução?

Se eu escrever meu próprio audting, meu pensamento inicial para fazer uma tabela separada e construir uma série de mudanças no código PHP. Algo como "fieldname1 -> OldValue | fieldname2 -> OldValue, ...". Se você ver um grande problema com este método, por favor me avise.

Foi útil?

Solução

A única maneira infalível para capturar todas as alterações em uma tabela DB é usar gatilhos no servidor. O risco de modifing seu próprio código para auditar as mudanças é que muda de outro aplicativo / user etc não serão capturados.

Dito isto, eu não tenho certeza que o MySQL 4 teve o apoio do gatilho.

Outras dicas

Use a gatilho para detectar alterações e escrever antes / depois os valores em uma tabela log.

Se você acabar mão-rolando uma solução devido a falta de apoio gatilho, eu recomendo fortemente que você não simplesmente despejar as mudanças em uma bolha string. Um dia você será solicitado a consulta que dados e você vai acabar tendo que fazer um monte de análise de cadeia para voltar seus dados para fora. (Falo por experiência aqui.)

A abordagem mais simples é apenas para criar uma sombra tabela de auditoria que tem todas as mesmas colunas como a tabela original, além de uma coluna de data mudança e um ID seqüencial. Então você tem toda a história na mão para reconstruir em qualquer formato que você precisa, e você pode consultá-lo à vontade.

SoftTree DB Auditoria tem suporte ao MySQL, pode fazer o que você está depois:

http://www.softtreetech.com/idbaudit.htm

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top