暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

“删库跑路”将有迹可循

PolarDB 2025-08-01
23

欢迎关注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


 这个feat来自ZTE, 感谢ZTE对PolarDB开源项目的代码贡献.

文章转载自PolarDB,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论