Olá, Então você quer guardar o sql que o usuário da sua aplicação gerou e o nome do usuário da sua aplicação (que o banco desconhece)?
Acho que você terá que fazer isso pelo lado da aplicação ou avisar de algum modo o banco, "ei mané, sou o usuário X e mandei a instrução Y". Porque pelos logs você conseguirá a instrução e o usuário do banco (e não o usuário da aplicação) que executou a instrução e não o usuário da sua aplicação. []'s Luigi Castro Cardeles 2009/4/23 Guilherme Carvalho <[email protected]> > É sim Luigi, a estrutura da aplicação tem a camada de acesso ao banco > (DAO), que utiliza um único usuário, mas na aplicação temos inúmeros > usuários que é justamente os comandos executados por estes usuários que eu > preciso fazer o sistema de LOG. > > Estou achando que a melhor solução será não gravar os comandos executados, > sql, e sim mensagens do tipo > > o usuário X alterou o registro Y na data Z com o número do IP Z > > Assim poderia ser considerado um sistema de log/auditoria? > > 2009/4/23 Luigi Castro Cardeles <[email protected]> > > Olá, >> >> mas você não disse que é um mesmo usuário que executa todas as queries no >> banco? >> >> []'s >> >> Luigi Castro Cardeles >> >> >> >> 2009/4/23 Guilherme Carvalho <[email protected]> >> >>> Mas neste caso eu não vou ter como saber qual usuário executou a ação >>> certo? >>> >>> 2009/4/23 Roberto Mello <[email protected]> >>> >>> 2009/4/23 Guilherme Carvalho <[email protected]>: >>>> > >>>> > No banco existe uma tabela de log, que o sistema armazena os dados, >>>> mas eu >>>> > quero deixar o sistema mais completo armazenando o comando SQL >>>> executado, >>>> > teria como eu pegar o comando executado sobre uma tabela via trigger, >>>> porque >>>> > aí eu pego este comando e gravo na tabela. >>>> > >>>> > Seria para os eventos de insert, update, delete. Lembrando que isto >>>> tem que >>>> > ser feito pelo banco. >>>> >>>> 1) Configure o PostgreSQL para escrever todos os insert/update/delete >>>> para o arquivo de log >>>> >>>> log_statement = 'mod' >>>> >>>> 2) Escreva um programinha que leia o arquivo de log e insira os >>>> comandos na sua tabela de log >>>> >>>> 3) Agende seu programa para rodar num determinado horario(s) >>>> >>>> Dessa maneira voce nao precisa de preocupar em botar gatilhos em todas >>>> as tabelas do sistema, e voce nao vai perder performance do seu banco >>>> esperando que os gatilhos sejam executados para armazenar dados que >>>> voce nao vai precisar em tempo real. >>>> >>>> Roberto >>>> _______________________________________________ >>>> pgbr-geral mailing list >>>> [email protected] >>>> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral >>>> >>> >>> >>> >>> -- >>> Guilherme de Carvalho Carneiro >>> Analista de Sistemas | Prefeitura Municipal de Palmas >>> >>> Sent from Goiania, GO, Brazil >>> >>> _______________________________________________ >>> pgbr-geral mailing list >>> [email protected] >>> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral >>> >>> >> >> _______________________________________________ >> pgbr-geral mailing list >> [email protected] >> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral >> >> > > > -- > Guilherme de Carvalho Carneiro > Analista de Sistemas | Prefeitura Municipal de Palmas > > > _______________________________________________ > pgbr-geral mailing list > [email protected] > https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral > >
_______________________________________________ pgbr-geral mailing list [email protected] https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
