Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

auditoria mysql (quase) completa


Hum, também estava pensando nisso.
  • Ter uma tabela por tabela para manter revisões não seria um grande problema para mim pessoalmente, mas ei.
  • O nome de usuário pode ser mantido com variáveis ​​definidas pelo usuário, acredito, (após o início de uma sessão, emita algo como SET @user='someone' e use isso.
  • Enquanto houver gatilhos após INSERT, UPDATE e DELETE, obter os valores anterior/seguinte é uma consulta simples, armazenarei apenas os valores OLD.

Resumindo, para uma tabela com colunas (a,b,c) eu criaria uma tabela com colunas (user_id,modtime,a,b,c).

Principais desvantagens:
  • as atualizações em lote são lentas (então escolha cuidadosamente suas tabelas para manter as revisões)
  • duplicação de dados deluxe, você / eu terei que ter espaço de armazenamento suficiente
  • dados 'relacionados' não acionam uma revisão (ou seja, alterando um group_members tabela não altera realmente um groups tabela, enquanto você pode querer manter isso como um ponto no tempo para groups em vez de explorar group_members alterações.

Em suma, parece-me um bom negócio, mas como raramente o vejo na prática, deve ser razões convincentes por que é ruim, então vou aguardar essas respostas.