pgAudit

PolarDB PostgreSQL支持pgAudit插件,提供生成审计日志的能力,这些日志通常需要符合政府、金融或ISO认证。通过审计日志,用户可以对数据库进行故障分析、行为分析等操作,有效的帮助您获取数据的执行情况。

适用范围

支持的PolarDB PostgreSQL的版本如下:

  • PostgreSQL 17(内核小版本2.0.17.6.4.0及以上)

  • PostgreSQL 16(内核小版本2.0.16.9.9.0及以上)

  • PostgreSQL 14(内核小版本2.0.14.5.1.0及以上)

  • PostgreSQL 11(内核小版本2.0.11.9.25.0及以上)

说明

您可在控制台查看内核小版本号,也可以通过SHOW polardb_version;语句查看。如未满足内核小版本要求,请升级内核小版本

注意事项

  • 审计日志需通过SQL洞察功能进行查看。

  • 设置插件参数需要高权限账号。

使用指南

安装插件

CREATE EXTENSION pgaudit;

审计读相关操作

执行以下命令,设置审计pgaudit_testdb数据库下的所有读操作。

ALTER DATABASE pgaudit_testdb SET pgaudit.log = 'READ';

设置完成后,pgaudit_testdb数据库中的所有读操作(例如SELECT)都会被审计。INSERTUPDATE等写操作不会被审计。

审计读写相关操作

执行以下命令,设置审计pgaudit_testdb数据库下所有的读写操作。

ALTER DATABASE pgaudit_testdb SET pgaudit.log = 'READ,WRITE';

设置完成后,pgaudit_testdb数据库中所有的读写操作(例如SELECTINSERTUPDATE)都会被审计。

关闭审计设置

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官方文档