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

前提条件

RDS PostgreSQL实例需为以下版本之一:
  • PostgreSQL 13
  • PostgreSQL 12
  • PostgreSQL 11
  • PostgreSQL 10

注意事项

  • 根据设置的不同,pgAudit会生成大量日志。使用前请评估使用审计日志的对象,以避免日志过多导致磁盘空间不足。
  • 对象重命名后,审计日志会产生在重命名后的对象下。

开启或关闭插件

  • 开启pgAudit。
    CREATE EXTENSION pgaudit;
  • 关闭pgAudit。
    DROP EXTENSION pgaudit;

配置审计日志

开启pgAudit插件后,您需要通过如下方式配置审计日志:
  • 会话审计日志:配置pgaudit.log参数来指定会话审计日志记录的语句类别,会话审计日志将会记录被执行的所有此类语句。
  • 对象审计日志:配置pgaudit.role参数定义用于审计日志记录的角色。当审计角色对执行的命令具有权限或从另一个角色继承权限时,将记录表、视图等。
配置会话审计日志
SET pgaudit.log = 'read, ddl';
说明 本示例以read和ddl为例,记录SELECT和DDL语句。具体的语句类别划分,请参见 pgAudit官方文档
配置对象审计日志
SET pgaudit.role = 'auditor';
 
GTANT SELECT, DELETE
   ON public.account
   TO auditor;
说明 本示例中以角色auditor为例,使角色auditor具有表account的SELECT和DELETE权限。对象审计日志将会记录auditor在表account中执行的所有SELECT或DELETE语句。

相关参考

pgAudit的详细说明,请参考pgAudit官方文档