Necesito monitorear la actividad de los usuarios en nuestras bases de datos. He establecido los siguientes parámetros en postgresql.conf
:
log_min_duration_statement = 0
log_connections = on
log_disconnections = on
log_line_prefix = '%t %a %d %h %u |'
Sin embargo, me doy cuenta de que la mayoría de los archivos de registro están llenos de declaraciones ejecutadas por el postgres
usuario, que se utilizan mediante scripts que escribí para tareas de mantenimiento: recalcular vistas materializadas, pg_dump, pg_restore, extraer vistas como archivos tabulados, etc. El resultado es diario archivos de registro que tengan más de 12 Mb de tamaño.
¿Hay alguna manera de excluir la actividad de usuarios específicos del registro?
postgresql
log
Sébastien Clément
fuente
fuente
ALTER USER ... SET log_connections = off
etc.dezso
(un superusuario), siempreERROR: parameter "log_connections" cannot be set after connection start
ALTER ROLE bob SET log_connections = off
Respuestas:
Usando el
ALTER ROLE ... SET parameter;
comando, fue posible personalizar los parámetros de registro específicos del usuario. Tenga en cuenta que el parámetro solo tiene efecto después de cerrar sesión.Configuración de log_min_duration_statement = -1 (primer inicio de sesión):
consola psql
Resultado en el registro:
Tenga en cuenta que dentro de esa sesión, todas las declaraciones son visibles en el registro incluso después de configurar log_min_duration_statement = -1.
Al ver el efecto de log_min_duration_statement (segundo inicio de sesión):
consola psql
Resultado en el registro:
Como se esperaba, ninguna de las declaraciones se registra.
fuente