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

Responder a