ページの先頭行へ戻る
Enterprise Postgres 15 セキュリティ運用ガイド

6.8 SQLでの監査ログの参照

監査ログは、追加モジュールのfile_fdwを使用することで、SQLでアクセスすることができます。ここでは、専用ログファイルに出力したSession Audit Loggingを例に監査ログを参照する方法を説明します。

  1. file_fdwのインストール

    CREATE EXTENSIONを使用し、file_fdwをエクステンションとしてインストールします。

    $ psql
    =# CREATE EXTENSION file_fdw;
    =# \dx
                      List of installed extensions
    Name     | Version |   Schema   |     Description
    ---------+---------+------------+-------------------------------------------
    file_fdw | 1.0     | public     | foreign-data wrapper for flat file access
    pgaudit  | 1.0     | public     | provides auditing functionality
    plpgsql  | 1.0     | pg_catalog | PL/pgSQL procedural language
    (3 rows)
  2. 外部サーバの作成

    CREATE SERVERを使用し、file_fdwで管理する外部サーバを作成します。

    $ psql
    =# CREATE SERVER auditlog FOREIGN DATA WRAPPER file_fdw;
  3. 監査ログのテーブルの作成

    CREATE FOREIGN TABLEを使用し、監査ログのテーブルのカラム、CSVファイル名とフォーマットを定義します。

    $ psql
    =# CREATE FOREIGN TABLE auditlog (
    header text,
    class text,
    sql_start_time timestamp with time zone,
    remote_host_name text,
    backend_process_id text,
    application_name text,
    session_user_name text,
    database_name text,
    virtual_transaction_id text,
    statement_id text,
    substatement_id text,
    command_tag text,
    sqlstate text,
    object_type text,
    object_name text,
    error_message text,
    sql text,
    parameter text
    ) SERVER auditlog
    OPTIONS ( filename '/database/inst1/pgaudit_log/pgaudit-2022-03-12.log', format 'csv' );

    注意

    監査ログファイルをローテーションさせて複数の監査ログファイルが存在する場合は、それぞれの監査ログファイルに対してテーブルを作成する必要があります。

  4. 監査ログの参照

    SELECTを使用し、監査ログを参照します。

    $ psql
    =# SELECT * FROM auditlog;
         header     |  class  |     sql_start_time     | remote_host_name | backend_process_id ...
    ----------------+---------+------------------------+------------------+------------------- ...
    AUDIT: SESSION  | WRITE   | 2022-03-12 19:00:49+09 | [local]          | 19944              ...
    AUDIT: SESSION  | READ    | 2022-03-12 19:00:58+09 | [local]          | 19944              ...