Eu preciso monitorar a atividade dos usuários em nossos bancos de dados. Eu configurei os seguintes parâmetros em postgresql.conf
:
log_min_duration_statement = 0
log_connections = on
log_disconnections = on
log_line_prefix = '%t %a %d %h %u |'
No entanto, percebo que a maioria dos arquivos de log é preenchida com instruções executadas pelo postgres
usuário, que são usadas pelos scripts que eu escrevi para tarefas de manutenção: recalcular visualizações materializadas, pg_dump, pg_restore, extrai visualizações como arquivos tabulados, etc. O resultado é diário arquivos de log com mais de 12 Mb de tamanho.
Existe uma maneira de excluir a atividade de usuários específicos do log?
postgresql
log
Sébastien Clément
fonte
fonte
ALTER USER ... SET log_connections = off
etc.dezso
(um superusuário), eu sempre chegarERROR: parameter "log_connections" cannot be set after connection start
ao tentarALTER ROLE bob SET log_connections = off
Respostas:
Usando o
ALTER ROLE ... SET parameter;
comando, foi possível adaptar parâmetros de log específicos do usuário. Observe que o parâmetro só entra em vigor após o logout.Configurando log_min_duration_statement = -1 (1º login):
console psql
Resultado no log:
Observe que nessa sessão, todas as instruções são visíveis no log, mesmo após a configuração de log_min_duration_statement = -1.
Vendo o efeito de log_min_duration_statement (2º login):
console psql
Resultado no log:
Como esperado, nenhuma das instruções é registrada.
fonte