監査ログからのユーザーまたはデータベースの除外
Aurora PostgreSQL データベースログファイル で説明したように、PostgreSQL ログはストレージ容量を使用します。pgAudit 拡張機能を使用すると、追跡する変更に応じて、ログに収集されるデータの量が、程度の差はありますが、増加します。Aurora PostgreSQL DB クラスター内のすべてのユーザーまたはデータベースを監査する必要はないかもしれません。
ストレージへの影響を最小限に抑え、監査記録を不必要にキャプチャしないようにするには、ユーザーとデータベースを監査対象から除外できます。特定のセッション内のロギングを変更することもできます。次の例は、その方法を示しています。
注記
セッションレベルのパラメータ設定は、Aurora PostgreSQL DB クラスターのライターインスタンスのカスタム DB クラスターパラメータグループ の設定よりも優先されます。データベースユーザーに監査ログ設定の設定をバイパスさせたくない場合は、必ず権限を変更してください。
Aurora PostgreSQL DB クラスター が、すべてのユーザーとデータベースについて同じレベルのアクティビティを監査するように設定されているとします。次に、myuser
ユーザーを監査しないことにします。次の SQL コマンドを使用して、myuser
の監査機能を無効にできます。
ALTER USER myuser SET pgaudit.log TO 'NONE';
次に、次のクエリを使用して pgaudit.log
の user_specific_settings
列をチェックし、パラメータが NONE
に設定されていることを確認できます。
SELECT usename AS user_name, useconfig AS user_specific_settings FROM pg_user WHERE usename = 'myuser';
次のような出力が表示されます。
user_name | user_specific_settings
-----------+------------------------
myuser | {pgaudit.log=NONE}
(1 row)
次のコマンドを使用すると、データベースとのセッションの最中に、指定したユーザーのログをオフにできます。
ALTER USER myuser IN DATABASE mydatabase SET pgaudit.log TO 'none';
次のクエリを使用して、特定のユーザーとデータベースの組み合わせの pgaudit.log の設定列を確認します。
SELECT usename AS "user_name", datname AS "database_name", pg_catalog.array_to_string(setconfig, E'\n') AS "settings" FROM pg_catalog.pg_db_role_setting s LEFT JOIN pg_catalog.pg_database d ON d.oid = setdatabase LEFT JOIN pg_catalog.pg_user r ON r.usesysid = setrole WHERE usename = 'myuser' AND datname = 'mydatabase' ORDER BY 1, 2;
以下のような出力が表示されます。
user_name | database_name | settings
-----------+---------------+------------------
myuser | mydatabase | pgaudit.log=none
(1 row)
myuser
の監査を無効化した後に、mydatabase
の変更を追跡しないことにしました。次のコマンドを使用して、その特定のデータベースの監査を無効化します。
ALTER DATABASE mydatabase SET pgaudit.log to 'NONE';
次に、以下のクエリで database_specific_settings 列を確認し、pgaudit.log が NONE に設定されていることを確認します。
SELECT a.datname AS database_name, b.setconfig AS database_specific_settings FROM pg_database a FULL JOIN pg_db_role_setting b ON a.oid = b.setdatabase WHERE a.datname = 'mydatabase';
次のような出力が表示されます。
database_name | database_specific_settings
---------------+----------------------------
mydatabase | {pgaudit.log=NONE}
(1 row)
myuser の設定をデフォルト設定に戻すには、次のコマンドを使用します。
ALTER USER myuser RESET pgaudit.log;
設定をデータベースのデフォルト設定に戻すには、次のコマンドを使用します。
ALTER DATABASE mydatabase RESET pgaudit.log;
ユーザーとデータベースをデフォルト設定にリセットするには、次のコマンドを使用します。
ALTER USER myuser IN DATABASE mydatabase RESET pgaudit.log;
また、pgaudit.log
パラメータに pgaudit.log
を他の許容値のいずれかに設定することで、特定のイベントをログに記録することもできます 詳細については、「pgaudit.log パラメータの許容設定のリスト」を参照してください。
ALTER USER myuser SET pgaudit.log TO 'read'; ALTER DATABASE mydatabase SET pgaudit.log TO 'function'; ALTER USER myuser IN DATABASE mydatabase SET pgaudit.log TO 'read,function'