Ich muss die Aktivität der Benutzer in unseren Datenbanken überwachen. Ich habe folgende Parameter eingestellt in postgresql.conf
:
log_min_duration_statement = 0
log_connections = on
log_disconnections = on
log_line_prefix = '%t %a %d %h %u |'
Mir ist jedoch klar, dass die meisten Protokolldateien mit vom postgres
Benutzer ausgeführten Anweisungen gefüllt sind , die von Skripten verwendet werden, die ich für Wartungsaufgaben geschrieben habe: Neuberechnung materialisierter Ansichten, pg_dump, pg_restore, Extrahieren von Ansichten als tabellarische Dateien usw. Das Ergebnis ist täglich Protokolldateien mit einer Größe von über 12 MB.
Gibt es eine Möglichkeit, die Aktivität bestimmter Benutzer aus dem Protokoll auszuschließen?
postgresql
log
Sébastien Clément
quelle
quelle
ALTER USER ... SET log_connections = off
usw.dezso
(ein Superuser), bekomme ich immer,ERROR: parameter "log_connections" cannot be set after connection start
wenn ich versucheALTER ROLE bob SET log_connections = off
Antworten:
Mit dem
ALTER ROLE ... SET parameter;
Befehl konnten benutzerspezifische Protokollparameter angepasst werden. Beachten Sie, dass der Parameter erst nach dem Abmelden wirksam wird.Festlegen von log_min_duration_statement = -1 (1. Login):
psql konsole
Ergebnis im Protokoll:
Beachten Sie, dass innerhalb dieser Sitzung alle Anweisungen im Protokoll sichtbar sind, auch nachdem log_min_duration_statement = -1 festgelegt wurde.
Anzeigen der Auswirkung von log_min_duration_statement (2. Anmeldung):
psql konsole
Ergebnis im Protokoll:
Wie erwartet wird keine der Anweisungen protokolliert.
quelle