IBM Cloud Docs
によるログ記録 pgaudit

によるログ記録 pgaudit

PostgreSQL Audit Extension (pgaudit) は、 IBM Cloud® Databases for PostgreSQL デプロイメントでセッション・ロギングを有効にします。 監査ログを表示するには、 ログ記録を 有効にし Cloud Databases、 ログ送信権限を付与 するための認証 S2S 作成手順を完了 IBM® Cloud Logs していることを確認してください。

セッション・ログ記録

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

イベント・タイプ

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

  • FUNCTION
  • ROLE
  • DDL
  • READ
  • 書き込み
  • MISC
  • MISC_SET
  • NONE(ロギングを無効にする)

細については、 pgauditを参照してください。

pgaudit セッションロギングの有効化

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

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

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

pgaudit ユーザーロギングの有効化

pgaudit ユーザー・ロギングを有効にするには、管理ユーザーとして接続し、適切なイベント・パラメーターを指定して set_pgaudit_user_logging 関数を呼び出します。 ユーザーログは、データベース内のすべてのユーザーではなく、特定のユーザーに対して有効になります。

例えば、READとWRITEを有効にするには、以下のコマンドを使用する:

SELECT public.set_pgaudit_user_logging('{read, write}');

pgaudit データベースのロギングを有効にする

pgaudit データベース固有のロギングを有効にするには、管理ユーザーとして接続し、適切なイベント・パラメーターを指定して set_pgaudit_database_logging 関数を呼び出します。 インスタンス内で複数のデータベースが利用可能な場合、データベース・ロギングは特定のデータベースに対して有効になります。

例えば、current_databaseでDDLとROLEを有効にするには、以下のコマンドを使用する:

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

または

SELECT public.set_pgaudit_database_logging('sampledatabase','{read, write, ddl}');

後続の呼び出しでは、既存の構成が置き換えられます。追加は行われません。 例えば、 SELECT public.set_pgaudit_session_logging('{misc}'); への呼び出しは、 misc のみを記録し、 ddlrole は記録しない。

無効化中 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>

詳しくは、 pgaudit フォーマットを参照。

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

show pgaudit.log;