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;