Em 11-05-2012 15:30, Alessandro Lima escreveu:
> Tenho um aplicação web java + jdbc + postgresql 8.4
> Criei uma trigger para registrar log de qualquer alteração em certa tabela.
> Mas não encontrei uma forma registrar o usuario neste log, pois o
> usuario da aplicação é diferente do usuario do banco de dados,
> alias todos os usuarios da aplicação utilizam o mesmo usuario do postgres.
>
> Existe alguma forma de passar o usuario como parametro junto com INSERT,
> UPDATE, DELETE?
> Estou utilizando uma gambiarra, adicionando o codigo do usuario no final
> do sql na forma de comentario, exemplo: "delete from tabela where codigo
> = 1 --usuario:2"
O jeito mais fácil de vejo é colocar uma função e gravar numa tabela
log, por exemplo.
CREATE TABLE log_usuario (usuario text, operacao text);
CREATE FUNCTION foo (usuario text, operacao text) AS $$
BEGIN
INSERT INTO log_usuario VALUES $1, $2;
END
$$
LANGUAGE plpgsql;
Depois uma modificação passada pela aplicação seria:
BEGIN;
INSERT INTO sua_tabela VALUES (1, 2, 3, 4);
SELECT foo ('nome_do_usuario', 'INSERT');
COMMIT;
Modifique ao seu bel prazer...
[]s
Flavio Henrique A. Gurgel
Consultor e Instrutor 4Linux
Tel: +55-11-2125-4747
www.4linux.com.br
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral