Protokollierung mit pgaudit
Die PostgreSQL Audit Extension (pgaudit) ermöglicht die Sitzungsprotokollierung für Ihre IBM Cloud® Databases for PostgreSQL-Bereitstellungen. Um die Audit-Protokolle anzuzeigen, stellen Sie sicher, dass Sie die Protokollierung für Cloud Databases aktiviert und den Schritt zum Erstellen einer S2S Autorisierung abgeschlossen haben, um Zugriff zum Senden von Protokollen an zu IBM® Cloud Logs gewähren.
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
- Lesen Sie
- SCHREIBEN
- MISC
- MISC_SET
- NONE (um die Protokollierung zu deaktivieren)
Weitere Informationen finden Sie unter pgaudit.
Aktivieren der pgaudit Sitzungsprotokollierung
Um die pgaudit Sitzungsprotokollierung zu aktivieren, verbinden Sie sich als Admin-Benutzer und rufen Sie die Funktion set_pgaudit_session_logging mit den entsprechenden 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}');
Aktivieren der pgaudit Benutzerprotokollierung
Um die pgaudit Benutzerprotokollierung zu aktivieren, verbinden Sie sich als Admin-Benutzer und rufen Sie die Funktion set_pgaudit_user_logging mit den entsprechenden Ereignisparametern auf. Die Benutzerprotokollierung
wird für einen bestimmten Benutzer statt für alle Benutzer in der Datenbank aktiviert.
Um zum Beispiel READ und WRITE zu aktivieren, verwenden Sie den folgenden Befehl:
SELECT public.set_pgaudit_user_logging('{read, write}');
Aktivieren der pgaudit Datenbankprotokollierung
Um die datenbankspezifische Protokollierung von pgaudit zu aktivieren, stellen Sie eine Verbindung als Admin-Benutzer her und rufen die Funktion set_pgaudit_database_logging mit den entsprechenden Ereignisparametern
auf. Die Datenbankprotokollierung wird für eine bestimmte Datenbank aktiviert, wenn mehrere Datenbanken in einer Instanz vorhanden sind.
Um zum Beispiel DDL und ROLE in current_database zu aktivieren, verwenden Sie den folgenden Befehl:
SELECT public.set_pgaudit_database_logging(current_database(),'{ddl, role}');
oder
SELECT public.set_pgaudit_database_logging('sampledatabase','{read, write, ddl}');
Alle nachfolgenden Aufrufe ersetzen die vorhandene Konfiguration; sie sind nicht additiv. So wird beispielsweise bei einem nachfolgenden Aufruf von SELECT public.set_pgaudit_session_logging('{misc}'); nur misc protokolliert,
während ddl und role deaktiviert werden.
Inaktivierung pgaudit
Um die Protokollierung zu deaktivieren, rufen Sie die gleiche Funktion mit der Angabe none auf. Zum 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>
Weitere Informationen finden Sie unter pgaudit format.
Wenn Sie die aktuelle Protokollierungsstufe anzeigen möchten, können Sie den folgenden Befehl ausführen:
show pgaudit.log;