Saya perlu memantau aktivitas pengguna di basis data kami. Saya telah menetapkan parameter berikut di postgresql.conf
:
log_min_duration_statement = 0
log_connections = on
log_disconnections = on
log_line_prefix = '%t %a %d %h %u |'
Namun, saya menyadari bahwa sebagian besar file log diisi dengan pernyataan yang dijalankan oleh postgres
pengguna, yang digunakan oleh skrip yang saya tulis untuk tugas pemeliharaan: menghitung ulang tampilan terwujud, pg_dump, pg_restore, mengekstraksi tampilan sebagai file yang ditabulasi, dll. Hasilnya setiap hari file log memiliki ukuran lebih dari 12 Mb.
Apakah ada cara untuk mengecualikan aktivitas pengguna tertentu dari log?
postgresql
log
Sébastien Clément
sumber
sumber
ALTER USER ... SET log_connections = off
dll.dezso
(pengguna super ), saya selalu mengertiERROR: parameter "log_connections" cannot be set after connection start
ketika mencobaALTER ROLE bob SET log_connections = off
Jawaban:
Menggunakan
ALTER ROLE ... SET parameter;
perintah, dimungkinkan untuk menyesuaikan parameter log khusus pengguna. Perhatikan bahwa parameter hanya berlaku setelah keluar.Pengaturan log_min_duration_statement = -1 (Login pertama):
konsol psql
Hasil pada log:
Perhatikan bahwa dalam sesi itu, semua pernyataan terlihat di log bahkan setelah pengaturan log_min_duration_statement = -1.
Melihat efek log_min_duration_statement (login kedua):
konsol psql
Hasil pada log:
Seperti yang diharapkan, tidak ada pernyataan yang dicatat.
sumber