J'ai besoin de surveiller l'activité des utilisateurs dans nos bases de données. J'ai défini les paramètres suivants dans postgresql.conf
:
log_min_duration_statement = 0
log_connections = on
log_disconnections = on
log_line_prefix = '%t %a %d %h %u |'
Cependant, je me rends compte que la plupart des fichiers journaux sont remplis d'instructions exécutées par l' postgres
utilisateur, qui sont utilisées par les scripts que j'ai écrits pour les tâches de maintenance: recalculer les vues matérialisées, pg_dump, pg_restore, extraire les vues sous forme de fichiers tabulés, etc. Le résultat est quotidien fichiers journaux de plus de 12 Mo.
Existe-t-il un moyen d'exclure une activité d'utilisateurs spécifiques du journal?
postgresql
log
Sébastien Clément
la source
la source
ALTER USER ... SET log_connections = off
etc.dezso
(super-utilisateur), je reçois toujoursERROR: parameter "log_connections" cannot be set after connection start
en essayant deALTER ROLE bob SET log_connections = off
Réponses:
À l'aide de la
ALTER ROLE ... SET parameter;
commande, il a été possible de personnaliser les paramètres de journal spécifiques à l'utilisateur. Notez que le paramètre ne prend effet qu'après déconnexion.Définition de log_min_duration_statement = -1 (1ère connexion):
console psql
Résultat sur le journal:
Notez que dans cette session, toutes les instructions sont visibles dans le journal même après avoir défini log_min_duration_statement = -1.
Voir l'effet de log_min_duration_statement (2e connexion):
console psql
Résultat sur le journal:
Comme prévu, aucune des instructions n'est enregistrée.
la source