Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Eu1Mesmo

Log de usuários através de trigger

Recommended Posts

Olá pessoal! http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

 

Estou implementando um sistema web em PHP + Postgres, e gostaria de saber como posso fazer um log de usuários.

 

Estive pensando na seguinda idéia:

Criar uma tabela com os seguintes campos:

-nome de usuário

-operacao feita

-data

-hora

-valor_afetado

 

E através de um trigger armazenar essas informações nessa tabela.

O problema está: como vou conseguir pegar o NOME DE USUÁRIO?

 

Pensei da seguinte forma:

o mesmo usuário que será cadastrado no sistema, terá o mesmo login e senha no banco, com as devidas permissões.

E cada operação realizada no banco eu faria com o usuário que está logado no sistema.

 

O que acham da idéia? É viável? É seguro?

 

Por favor, se alguém já passou por uma experiência parecida e puder me ajudar...

 

Abraço

 

Diego

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá pessoal! http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif Estou implementando um sistema web em PHP + Postgres, e gostaria de saber como posso fazer um log de usuários.Estive pensando na seguinda idéia:Criar uma tabela com os seguintes campos:-nome de usuário-operacao feita-data-hora-valor_afetadoE através de um trigger armazenar essas informações nessa tabela.O problema está: como vou conseguir pegar o NOME DE USUÁRIO?Pensei da seguinte forma: o mesmo usuário que será cadastrado no sistema, terá o mesmo login e senha no banco, com as devidas permissões.E cada operação realizada no banco eu faria com o usuário que está logado no sistema.O que acham da idéia? É viável? É seguro?Por favor, se alguém já passou por uma experiência parecida e puder me ajudar...AbraçoDiego

Brother,Já passei por uma situação parecida e solucionei colocando em todas a tabelas envolvidas os campos:Usuário alteração e Data alteraçãoDai qdo rodo a trigger tenho o usuário disponivel sem problemas.Estou com pouco tempo mas acho que já dá pra você começar.QQ coisa post ai.t+

Compartilhar este post


Link para o post
Compartilhar em outros sites

Hum... é verdade né... pode ser assim tb...eu já tinha adotado esses 2 campos nas tabelas, mas ainda não tinha implementado o trigger... é uma boa idéia, e vou tentar assim!mas me diz uma coisa... na sua tabela de log, o que você armazena? a informação alterada ou o próprio sql executado?valeu!Diego

Compartilhar este post


Link para o post
Compartilhar em outros sites

Hum... é verdade né... pode ser assim tb...

eu já tinha adotado esses 2 campos nas tabelas, mas ainda não tinha implementado o trigger...

é uma boa idéia, e vou tentar assim!

 

mas me diz uma coisa... na sua tabela de log, o que você armazena? a informação alterada ou o próprio sql executado?

 

 

valeu!

 

Diego

Aqui onde trabalho normalmente não criamos log´s por trigger´s. Como trabalhamos em tres camadas temos um mêtodo que cria os log´s ou mesmo trilha de auditoria.

As informações guardadas variam de acordo com a necessidade podem ser:

[*]usuario, data, nome do mêtodo executado, lista de parâmetros, hora inicio, hora fim, msg de erro.

[*]usuario, data login, hora login, servidor login, servidor repositorio

[*]usuario,data, valor antigo, valor atual

[*]usuario,data,sql executado, tabelas afetadas

Na verdade é assunto para um livro. O problema de se utilizar trigger´s é que não se passa parâmetros para as mesmas então todos os campos devem esta na tabela afetada. No caso do exemplo usuario,data, valor antigo, valor atual dá pra utilizar porque todos os campos a serem gravados fazem parte da estrutura da tabela onde o trigger esta criado. Agora nos outros exemplos você teria de colocar em todas as tabelas onde rodará o trigger campos tipo "sql executado, nome do servidor" o que viraria uma bagunça.

 

Dê mais uma luz?

 

t+

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.