Protokollierung mit pgAudit
Die PostgreSQL Audit Extension (pgAudit) bietet die Aktivierung der Sitzungsprotokollierung für Ihre IBM Cloud® Databases for PostgreSQL-Bereitstellungen.
Sitzungsprotokollierung
Standardmäßig ist die Sitzungsprotokollierung inaktiviert. Sie können Parameter für die Sitzungsprotokollierung aktivieren, die alle Aktivitäten für Gruppen von Audit-Ereignisarten protokollieren. Die Sitzungsprotokollierung ist für den gesamten
DB-Cluster aktiviert und ist für den jeweiligen Ereignistyp entweder on
oder off
.
Ereignistypen
Die Sitzungsprotokollierung wird für jeden Ereignistyp einzeln konfiguriert. Die unterstützten Ereignistypen in allen Versionen sind:
- Funktion
- ROLLE
- DDL
- MISC
- MISC_SET (dieser zusätzliche Typ wird nur in PostgreSQL 12 oder höher unterstützt)
Für weitere Informationen siehe pgaudit.
pgAudit-Sitzungsprotokollierung aktivieren
Zum Aktivieren der pgAudit-Sitzungsprotokollierung stellen Sie eine Verbindung als Benutzer mit Administratorberechtigung her und rufen die Funktion set_pgaudit_session_logging
mit den angegebenen Ereignisparametern auf. Die Sitzungsprotokollierung
wird direkt in der Datenbank aktiviert und es wird kein API- oder CLI-Zugriff bereitgestellt.
Zum Aktivieren von DDL und ROLE rufen Sie beispielsweise Folgendes auf:
SELECT public.set_pgaudit_session_logging('{ddl, role}');
Alle nachfolgenden Aufrufe ersetzen die vorhandene Konfiguration; sie sind nicht additiv. Zum Beispiel würde ein nachfolgender Aufruf an SELECT public.set_pgaudit_session_logging('{misc}');
nur misc
protokollieren,
aber ddl
und role
inaktivieren.
pgAudit inaktivieren
So inaktivieren Sie die Prüfprotokollierung: Rufen Sie dieselbe Funktion mit der Angabe none
auf. Beispiel:
SELECT public.set_pgaudit_session_logging('{none}');
Das Ändern von Prüfstufen erfolgt sofort, wenn die Funktion aufgerufen wird, ohne dass die Datenbankaktivität unterbrochen wird.
Prüfprotokolle
Aufgezeichnete Ereignisse werden in IBM® Cloud Logs Routing mit dem folgenden Format angezeigt:
LOG: AUDIT: SESSION,1,1,DDL,CREATE TABLE,,,create table f2 (id int);,<not logged>
Das Format ist hier dokumentiert.
Wenn Sie die aktuelle Protokollierungsstufe anzeigen möchten, können Sie den folgenden Befehl ausführen:
show pgaudit.log;