Protokollierung mit pgaudit
Die „ PostgreSQL “-Audit-Erweiterung (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, mit denen alle Aktivitäten für bestimmte Gruppen von Audit-Ereignistypen protokolliert werden. 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
- SCHREIBEN
- MISC
- MISC_SET
- NONE (um die Protokollierung zu deaktivieren)
Weitere Informationen finden Sie unter pgaudit.
pgaudit-Sitzungsprotokollierung aktivieren
Um die Sitzungsprotokollierung von „ pgaudit “ zu aktivieren, melden Sie sich als Admin-Benutzer an 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(current_database(),'{ddl, role}');
Sie können eine Datenbank mit dbname anstelle der Funktion current_database() angeben.
pgaudit-Benutzerprotokollierung aktivieren
Um die Benutzerprotokollierung von „ pgaudit “ zu aktivieren, melden Sie sich als Administrator an 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(<CREATED USER>,'{read, write}');
Aktivieren der Datenbankprotokollierung in „ pgaudit “
Um die datenbankspezifische Protokollierung von „ pgaudit “ zu aktivieren, melden Sie sich als Admin-Benutzer an und rufen Sie 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. Beispielsweise protokolliert ein nachfolgender Aufruf von „ SELECT public.set_pgaudit_session_logging('{misc}'); “ lediglich „ misc “, deaktiviert jedoch „ ddl “ und „ role “.
wird deaktiviert pgaudit
Um die Protokollierung zu deaktivieren, rufen Sie dieselbe Funktion mit dem Parameter „ none “ auf. Zum Beispiel:
SELECT public.set_pgaudit_session_logging(current_database(),'{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;