Boa tarde a todos.

Estou tentando pegar o IP da transação do cliente para gerar uma auditoria
de dados.

Meu cenário :

PostgreSQL 9.6.3
PgBouncer 1.7.2
pool_mode = transaction

Estou usando a sugestão do Euler [1] para pesquisar as informações do
Pgbouncer como se cada comando "show" fosse uma tabela.

Minha necessidade :

Em algumas tabelas eu criei um gatilho para fazer auditoria de dados.
Dentro do gatilho coloquei o seguinte comando para tentar pegar o IP do
cliente

    select into tabela c.addr
    from pgbouncer.clients c
    left join pgbouncer.servers s on s.link = c.ptr
    where s.remote_pid = pg_backend_pid();

Na minha aplicação quando os dados são alterados/incluídos/deletados, o
gatilho da tabela é acionado, mas o IP do cliente sempre vem como NULL.

O comando na aplicação e a execução do gatilho não estão na mesma transação
?

Tem alguma forma de conseguir este IP sem precisar colocar o pool_mode =
session ?

Grato.

[1] http://peter.eisentraut.org/blog/2015/03/25/retrieving-
pgbouncer-statistics-via-dblink/



*Minhas figuras favoritas do folclore brasileiro são a democracia e o
estado laico.*
_______________________________________________
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a