PolarDB for PostgreSQL (Oracle 互換) および は、監査ログを生成する pgAudit 拡張機能をサポートしています。これらのログは、政府、金融、または ISO 認証の要件を満たすためによく使用されます。監査ログを使用して、データベースのエラーの診断、動作分析、データベース操作の追跡を行うことができます。
適用範囲
PolarDB for PostgreSQL (Oracle 互換) は、次のバージョンをサポートしています。
Oracle 構文互換 2.0 (マイナーエンジンバージョン 2.0.14.5.1.0 以降)
Oracle 構文互換 1.0 (マイナーエンジンバージョン 2.0.11.9.25.0 以降)
マイナーエンジンバージョンは、コンソールで表示するか、SHOW polardb_version; 文を実行して確認できます。ご利用のクラスターがバージョンの要件を満たしていない場合は、マイナーエンジンバージョンをアップグレードしてください。
注意事項
監査ログは SQL Explorer で表示できます。
拡張機能のパラメーターを設定するには、特権アカウントが必要です。
使用方法
拡張機能のインストール
CREATE EXTENSION pgaudit;読み取り操作の監査
次のコマンドを実行して、pgaudit_testdb データベース内のすべての読み取り操作を監査できます。
ALTER DATABASE pgaudit_testdb SET pgaudit.log = 'READ';コマンドを実行すると、pgaudit_testdb データベース内の SELECT などのすべての読み取り操作が監査されます。INSERT や UPDATE などの書き込み操作は監査されません。
読み取り/書き込み操作の監査
次のコマンドを実行して、pgaudit_testdb データベース内のすべての読み取り/書き込み操作を監査できます。
ALTER DATABASE pgaudit_testdb SET pgaudit.log = 'READ,WRITE';コマンドを実行すると、pgaudit_testdb データベース内の SELECT、INSERT、UPDATE などのすべての読み取り/書き込み操作が監査されます。
監査の無効化
ALTER DATABASE pgaudit_testdb SET pgaudit.log = 'NONE';特定のオブジェクトに対する操作の監査
次のコマンドを実行して、pgaudit_testdb データベースの監査ユーザーを設定し、テーブルを作成して、そのテーブルに対するすべての権限をそのユーザーに付与します。
CREATE USER audit_role;
ALTER DATABASE pgaudit_testdb SET pgaudit.role = 'audit_role';
CREATE TABLE test_audit (id INT);
GRANT ALL ON test_audit TO audit_role;コマンドを実行すると、pgaudit_testdb データベース内の test_audit テーブルに対する操作のみが監査されます。
拡張機能のアンインストール
DROP EXTENSION pgaudit;関連ドキュメント
pgAudit の詳細については、pgAudit の公式ドキュメントをご参照ください。