2009/12/11 Andre Lopes <[email protected]>: > Boas, > > Já faço bases de dados a algum tempo, mas no que toca á auditoria só tenho > usado para controlar os INSERT's e UPDATE's, criando 3 campos adicionais em > cada tabela: > > id_utilizador_insert > id_utilizador_update > data_ult_actual > > No entanto necessitava de criar um sistema para poder ver os DELETE's feitos > na base de dados... > > A minha pergunta... Como fazem auditoria a DELETE's?
Buenas, Esta é mais uma daquelas perguntas em que a resposta é *não existe receita pronta*. Depende do nível de auditoria que tu queres implementar. Para manter um log de auditoria completo, _eu_ gero uma tabela *espelho*_ contendo todos os campos da tabela em que se deseja fazer o log, adicionando pelo menos 3 colunas: nome de usuário, data e hora e tipo de comando (DELETE ou UPDATE ou INSERT). Crio então 3 TRIGGERS na tabela principal: uma para _BEFORE_ DELETE, uma para _BEFORE_ UPDATE e uma para _AFTER_ INSERT. Cada TRIGGER alimenta a tabela espelho, como você pode ver, até nos inserts. NOTA: Uso pouco este esquema de auditoria, pois o tamanho do banco praticamente duplica ou triplica (se usado em todas as tabelas) e dependendo da operação existe uma queda sensível de desempenho. Use com cautela, preferencialmente apenas em tabelas que armazenem dados sensíveis onde se justifique este tipo de auditoria. -- TIAGO J. ADAMI http://www.adamiworks.com _______________________________________________ pgbr-geral mailing list [email protected] https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
