云数据库 RDS-使用pgaudit插件:基本使用

时间:2024-01-18 20:58:15

基本使用

设置pgaudit扩展

  1. 首先需要在插件管理中预加载pgaudit插件,因为pgaudit扩展会安装用于审核数据定义语言 (DDL) 语句的事件触发器。 默认插件管理中已预加载pgaudit插件,也可通过如下命令查看是否加载成功。
    show shared_preload_libraries;
                                 shared_preload_libraries                             
    ---------------------------------------------------------------------------------
     pg_stat_statements,pgaudit,passwordcheck.so,pg_sql_history,auth_delay,pglogical
    (1 row)
  2. 加载成功后再进行创建插件,请参考插件安装/卸载
  3. 插件安装好后,需要开启审计日志。

    如需开通审计日志功能,请联系客服申请。

    1. 在控制台上单击实例名称,在基本信息页面,选择“SQL审计”页签。
    2. 单击“设置SQL审计”。
    3. 在弹框中,开启审计日志开关,可选择审计日志保留天数。
      图1 设置SQL审计
  4. 开启审计日志后,还需要配置参数。

    在界面“参数修改”页签,搜索“pgaudit.log”参数(指定会话审计日志将记录哪些类型的语句)并设置为适合业务需要的值,可以捕获对日志的插入、更新、删除和其他一些类型的更改。“pgaudit.log”参数取值如下:

    表1 参数值说明

    参数值

    描述

    none

    这是原定设置值。不记录任何数据库更改。

    all

    记录所有内容(read、write、function、role、ddl、misc)。

    ddl

    记录所有数据定义语言(DDL)语句(不包括在 ROLE 类中)。

    function

    记录函数调用和DO块。

    misc

    记录其他命令,例如:DISCARD、FETCH、CHECKPOINT、VACUUM、SET

    read

    当源为关系(例如表)或查询时记录SELECT和COPY。

    role

    记录与角色和权限相关的语句,例如:GRANT、REVOKE、CREATE ROLE、ALTER ROLE、DROP ROLE

    write

    当目标为关系(表)时,记录INSERT、UPDATE、DELETE、TRUNCATE和COPY。

    pgaudit还有一些参数,可根据业务需要在界面上进行设置。

    表2 参数说明

    参数名称

    描述

    pgaudit.log_catalog

    指定在语句中的所有关系都在pg_catalog中的情况下,应该启用会话日志记录。

    pgaudit.log_client_authentication

    控制是否记录用户认证的信息。

    pgaudit.log_extra_field

    控制是否记录PID、IP、用户名、数据库等字段。

    pgaudit.log_file_rotation_age

    设置独立审计日志的轮转时间。

    pgaudit.log_parameter

    指定审核日志记录应该包含与语句传递的参数。

    pgaudit.log_relation

    指定会话审核日志记录是否应该为SELECT或DML语句中引用的每个关系(表、视图等)创建单独的日志项。

    pgaudit.log_rows

    指定审计日志记录应包括语句检索或影响的行。

    pgaudit.log_write_txid

    控制是否记录写操作(insert/update等)的txid。

    pgaudit.logstatementonce

    指定日志记录是否包含语句、文本和参数。

support.huaweicloud.com/usermanual-rds/rds_09_0063.html