Trigger de LOG no PostgreSQL

22/11/2012

0

Boa Tarde,

Estou enfrentando um problema na gravação de LOG no Banco de Dados, a partir de um portal WEB.
Possuo uma tabela de LOG, e essa é alimentada com um usuário. Mas o usuário que eu quero informar, é o logado na aplicação.

A forma fácil de resolver isso seria criar um campo usuário em cada tabela, ou ainda utilizar usuário do Banco.

Mas não gostaria de implementar desta forma.

Realizei alguns testes com variáveis de sessão do Postgre.
No meu ambiente de desenvolvimento, utilizando o ASP.NET Development Server funciona, pois cada membro da equipe que compila a aplicação,
gera uma nova sessão.
Mas quando utilizo no IIS, ele sempre pega o último usuário que logou, substituindo a variável.

Alguma idéia ?
Maikel Penz

Maikel Penz

Responder

Posts

22/11/2012

Bruno Leandro

uma ideia eh voce gravar o id da conexao no momento do login em uma tabela amarrando com o usuario, e na hora de executar a trigger que vai popular o log voce recupera o usuario
Responder

22/11/2012

Maikel Penz

BRUNO LEANDRO


O problema é eu acabo logando com inúmeros usuários, utilizando a mesma id da conexão, constatei que no banco, o usuário padrão está iniciado apenas uma vez, sendo que tem por exemplo 10 usuários logados no sistema.

Usuário X id 1870
Usuário Y id 1870
Usuário Z id 1870

não sei o que eu poderia ser feito, para que cada um deles estivesse em uma conexão diferente..
Responder

23/11/2012

Jair N.

Bom Dia, se esse seu LOG for igual a uma auditoria? No caso deve guardar todo o procedimento assim que a trigger for disparada criando uma imagem dos registros (antes e depos de acesado), "não vai ter jeito, tem que colocar o campo do usuário em cada tabela". Se guardar no log o login, a identificação do usuário e a máquina que está em uso no arquivo, e relacionar ao registro por identificação ip ou outro sobre a máquina, so ai por relacionamento você consegue esse efeito.
Veja: "CURRENT_USER", "TG_OP" ,"INET_CLIENT_ADDR()"

Atc.



BRUNO LEANDRO


O problema é eu acabo logando com inúmeros usuários, utilizando a mesma id da conexão, constatei que no banco, o usuário padrão está iniciado apenas uma vez, sendo que tem por exemplo 10 usuários logados no sistema.

Usuário X id 1870
Usuário Y id 1870
Usuário Z id 1870

não sei o que eu poderia ser feito, para que cada um deles estivesse em uma conexão diferente..
Responder

APRENDA A PROGRAMAR DO ZERO AO PROFISSIONAL

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