PostgreSQL 审计操作

Posted by     "lxg" on Sunday, August 18, 2024

查看插件

select name from pg_available_extensions;

查看pgaudit设置

select name,setting from pg_settings where name ~ 'pgaudit';
set pgaudit.log = 'write, ddl';
set pgaudit.log_relation = on;

pgaudit.log 可选项如下

参数值描述
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。

表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指定日志记录是否包含语句、文本和参数。

「真诚赞赏,手留余香」

Little Star Blog

真诚赞赏,手留余香

使用微信扫描二维码完成支付