PolarDB PostgreSQL版(兼容Oracle)支持pgAudit插件,提供生成审计日志的能力,这些日志通常需要符合政府、金融或ISO认证。通过审计日志,可以对数据库进行故障分析、行为分析等操作,有效的帮助您获取数据的执行情况。
前提条件
支持的PolarDB PostgreSQL版(兼容Oracle)的版本如下:
Oracle语法兼容 2.0(内核小版本2.0.14.1.0及以上)
Oracle语法兼容 1.0(内核小版本1.1.25及以上)
说明
您可通过如下语句查看PolarDB PostgreSQL版(兼容Oracle)的内核小版本号:
SHOW polar_version;
注意事项
审计日志需要通过SQL洞察功能查看。
pgaudit
插件只提供过滤当前已有审计日志的功能。需要使用高权限账号设置插件参数。
使用指南
安装插件
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官方文档。
文档内容是否对您有帮助?