によるログ記録 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 のみを記録し、 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>
詳しくは、 pgaudit フォーマットを参照。
現在のログ・レベルを表示する場合は、次のコマンドを実行します。
show pgaudit.log;