Trigger Auditoria Web

23/02/2015

0

Ola Pessoal

Preciso uma ajudinha, Estou desenvolvendo um sistema web em php, ela tem varios formularios que são cadastrados pelos usuários, Então, agora o que eu preciso
fazer é um trigger de auditoria que permita capturar as modifcações que o usuario faz. Vocês tem alguma idea de como fazer ??
Mariam

Mariam

Responder

Post mais votado

23/02/2015

Mariam, constantemente vejo colegas desenvolvendo sistemas com auditorias de ações executadas em bancos de dados através de triggers, principalmente com MySQL só que quando analisam as tabelas de auditoria todas as ações são executadas pelo mesmo usuário geralmente "root" ou outro usuário do banco de dados.

Isso porque não tem como você saber o usuário que está logado no sistema via trigger, porque na grande maioria das vezes tem um ou dois usuários criados no banco, mas no sistema existem vários usuários.

Então nessa situação existem 2 maneiras, ou você inseri via procedure ou executa os INSERTs na mão mesmo mas o disparo deverá ocorrer na aplicação sempre quer ocorrer uma operação de CRUD, assim você consegue gravar o usuário que está logado no momento.

Nos meus sistemas uso uma tabela de log com os seguintes campos:
ID
ID_USUARIO
ACAO_EXECUTADA
URL_ACESSADA
IP
DATA_HORA

Claro que podem ser acrescentados outros campos, mas apenas com esses campos já consegui me livrar de muita dor de cabeça com usuário reclamando de registro que some misteriosamente.

William

William
Responder

Mais Posts

23/02/2015

Alan Mario

Não sei muito sobre o Postgre, apenas o arroz com feijão mesmo, hehehe.

Eu achei os seguintes materiais.

[url]https://www.devmedia.com.br/new-e-old-trigger-curso-postgresql-treinamento-de-banco-de-dados-parte-41/21768[/url]

[url]http://pgbr.postgresql.org.br/2013/slides/54.pdf[/url]
Responder

23/02/2015

Mariam

Obrigada pela Resposta,

Eu já tinha feito um na mão mesmo, só que que cada vez tinha mais e mais formulários que auditar, então pensei em minimizar esforços mas... rsrsrs...
vejo que difícil fazer algo genérico por que aumentaria a complexidade ...
Responder

23/02/2015

William

Se for pensar em gravar o usuário logado naquele instante fica complicado mesmo, suponhamos que você deixe somente o usuário padrão do PostgreSQL habilitado no servidor, todos as ações serão executadas pelo usuário "postgres", então fica sem sentido uma tabela de auditoria desse jeito.
Responder

23/02/2015

Mariam

Isso mesmo, agora tenho outra duvida. tem um jeito para capturar os dados modificados que não seja por trigger ..?
Responder

23/02/2015

Mariam

Isso mesmo, agora tenho outra duvida. tem um jeito para capturar os dados modificados que não seja por trigger ..?
Responder

23/02/2015

William

O que foi alterado fica difícil, porque imagine uma tabela com 20 ou 30 campos seria impossível checar mudança campo por campo, eu gravo o Id do registro alterado.
Responder

27/02/2015

Mariam

Obrigada ! pelas respostas , já consegui fazer :D!!!
Responder

27/02/2015

Thiago Santana

Legal!
Se possível posta a solução, assim a galera que necessitar já terá o conteúdo disponível!
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar