IBM Cloud Docs
Protokollierung mit pgaudit

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;