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;