欢迎关注PolarDB公众号.
如需“商务咨询“或”开源交流“, 速加小编微信.

ZTE向PolarDB贡献新特性|polar_audit审计插件新增DDL等事件
本次 Commit(8d954cec10d17e1183f6ffdc39fdd0acc2da0e89)为 PolarDB-for-PostgreSQL 带来了对 DDL 和 utility 操作的审计事件支持。
主要改动解读
功能:通过挂钩 ProcessUtility
,实现了对 DDL(数据定义语言,如 CREATE、ALTER、DROP 等)和实用工具类 SQL(如 DO、SHOW、EXPLAIN、CLOSE 等)操作的审计。即所有 DDL 和 utility 语句现在都会被记录为审计日志。实现:在 external/polar_audit/polar_audit.c
里新增了polar_audit_ProcessUtility_hook
方法,作为 PostgreSQL 的 ProcessUtility Hook,拦截并处理所有相关命令,并决定是否记录审计日志。细节:针对不同类型的命令(如 DO block、CREATE EXTENSION、ALTER EXTENSION、CLOSE CURSOR 等)分别做了专门处理和日志记录。 安全性:新增了 stack_valid
检查,确保审计事件堆栈状态正常,防止丢失审计记录。
使用示例
假设已开启 polar_audit,且配置了记录 DDL 和 utility 事件。
1. 执行 DDL 语句
CREATE TABLE audit_test(id int);
执行该语句后,PolarDB 会自动记录一条 DDL 审计事件,内容包括操作类型(CREATE TABLE)、对象名(audit_test)、操作人等信息。
2. 执行 utility 语句
SHOW search_path;
该语句会被记录为 utility 审计事件,内容包括操作类型(SHOW)、相关参数、操作人等。
3. 执行 DO block
DO $$
BEGIN
RAISE NOTICE 'audit test';
END
$$;
DO block 也会被记录到审计日志,便于数据库运维和安全合规。
4. 关闭游标
CLOSE my_cursor;
关闭游标操作同样会被记录。
总结
此提交让 PolarDB-for-PostgreSQL 实现了对 DDL 和 utility 操作的强制审计,增强了安全合规能力。你只需在 PolarDB 配置审计相关参数,所有 DDL/utility 操作都会自动生成审计日志,无需额外开发。
Commit 详情参考:
https://github.com/ApsaraDB/PolarDB-for-PostgreSQL/commit/8d954cec10d17e1183f6ffdc39fdd0acc2da0e89
文章转载自PolarDB,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




