Trigger de LOG no PostgreSQL

PostgreSQL

22/11/2012

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

Curtidas 0

Respostas

Bruno Leandro

Bruno Leandro

22/11/2012

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
GOSTEI 0
Maikel Penz

Maikel Penz

22/11/2012

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..
GOSTEI 0
Jair N.

Jair N.

22/11/2012

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..
GOSTEI 0
POSTAR