IBM Cloud Docs
pgAudit を使用したロギング

pgAudit を使用したロギング

PostgreSQL 監査拡張機能 (pgAudit) により、IBM Cloud® Databases for PostgreSQL のデプロイメントのセッション・ログ記録が使用可能になります。

セッション・ログ記録

デフォルトではセッション・ログ記録はオフです。 監査イベントタイプのセットに対して、すべてのアクティビティをログに記録するセッション・ロギング・パラメータを有効にできます。 セッション・ログ記録は、DB クラスター全体に対して有効になり、特定のイベント・タイプに対して on または off のいずれかになります。

イベント・タイプ

セッション・ログ記録はイベント・タイプごとに構成されます。 すべてのバージョンでサポートされるイベント・タイプは次のとおりです。

  • FUNCTION
  • ROLE
  • DDL
  • MISC
  • MISC_SET (この追加のタイプは PostgreSQL 12 以上でのみサポートされます)

詳細は pgauditを参照。

pgAudit セッション・ログ記録の有効化

pgAudit セッション・ログ記録を有効にするには、admin ユーザーとして接続し、適切なイベント・パラメーターを指定して set_pgaudit_session_logging 関数を呼び出します。 セッション・ログ記録はデータベース内で直接有効になり、API アクセスも CLI アクセスも提供されません。

例えば、DDL および ROLE を有効にするには、以下を呼び出します。

SELECT public.set_pgaudit_session_logging('{ddl, role}');

後続の呼び出しでは、既存の構成が置き換えられます。追加は行われません。 例えば、SELECT public.set_pgaudit_session_logging('{misc}'); の後続の呼び出しでは、misc のみがログに記録されますが、ddl および role は無効になります。

pgAudit の無効化

監査ロギングを無効にするには、none を指定して同じ関数を呼び出します。 以下に例を示します。

SELECT public.set_pgaudit_session_logging('{none}');

監査レベルの変更は、データベース・アクティビティーを中断せずに関数を呼び出すと、すぐに行われます。

監査ログ

監査イベントは、次の形式で IBM® Cloud Logs Routing に表示されます。

LOG: AUDIT: SESSION,1,1,DDL,CREATE TABLE,,,create table f2 (id int);,<not logged>

フォーマットは こちらに記載されている。

現在のログ・レベルを表示する場合は、次のコマンドを実行します。

show pgaudit.log;