10分钟上手audit-trigger:PostgreSQL数据变更追踪的简单实现 📅 2026/8/10 20:44:46 10分钟上手audit-triggerPostgreSQL数据变更追踪的简单实现【免费下载链接】audit-triggerSimple, easily customised trigger-based auditing for PostgreSQL (Postgres). See also pgaudit.项目地址: https://gitcode.com/gh_mirrors/au/audit-triggeraudit-trigger是一个为PostgreSQL设计的轻量级数据变更追踪工具通过触发器实现对数据库表的审计功能。无论是INSERT、UPDATE还是DELETE操作它都能帮你记录详细的变更历史让数据追踪变得简单高效。 为什么选择audit-trigger对于需要严格数据治理的应用场景比如金融系统、医疗记录或电商订单管理追踪数据变更历史至关重要。audit-trigger作为PostgreSQL的触发器实现具有以下优势零侵入性无需修改现有业务逻辑通过数据库触发器自动记录变更轻量级设计核心功能仅通过一个SQL脚本实现无需复杂依赖高度可定制支持忽略特定列、控制日志详细程度等高级配置完整记录包含变更时间、操作用户、客户端信息及具体数据变化 快速安装步骤1. 获取源码首先克隆项目仓库到本地git clone https://gitcode.com/gh_mirrors/au/audit-trigger cd audit-trigger2. 执行安装脚本连接到你的PostgreSQL数据库执行audit.sql脚本创建审计所需的表和函数psql -U your_username -d your_database -f audit.sql执行成功后系统会创建一个名为audit的模式包含以下核心组件logged_actions表存储所有审计日志if_modified_func函数处理变更事件的触发器函数audit_table函数为指定表启用审计功能 基本使用指南为表启用审计对目标表启用审计非常简单只需调用audit.audit_table函数-- 为public.users表启用完整审计 SELECT audit.audit_table(public.users);这会自动为users表创建触发器记录所有行级变更和触发变更的查询文本。自定义审计选项audit-trigger提供灵活的配置选项满足不同场景需求-- 仅审计语句级变更不记录行数据 SELECT audit.audit_table(public.products, audit_rows : false); -- 忽略敏感列不记录密码变更 SELECT audit.audit_table(public.users, ignored_cols : ARRAY[password]); 查看审计日志所有审计记录都保存在audit.logged_actions表中你可以通过简单查询获取变更历史-- 查看最近10条变更记录 SELECT * FROM audit.logged_actions ORDER BY action_tstamp_clk DESC LIMIT 10; -- 筛选特定表的更新记录 SELECT action_tstamp_tx, session_user_name, changed_fields FROM audit.logged_actions WHERE table_name users AND action U ORDER BY action_tstamp_tx DESC;审计日志包含丰富信息主要字段说明action操作类型I插入U更新D删除T截断row_data变更前的完整记录JSON格式changed_fields更新的字段及新值session_user_name执行操作的数据库用户client_addr客户端IP地址⚙️ 高级配置技巧排除不需要的列在创建审计时排除敏感或不需要的列减少日志体积-- 排除多个列 SELECT audit.audit_table(public.orders, ignored_cols : ARRAY[created_at, updated_at]);查看已审计的表通过内置视图快速查看所有启用审计的表SELECT * FROM audit.tableslist; 维护与注意事项日志清理策略审计日志会随着时间增长建议定期清理历史数据-- 保留最近30天的日志 DELETE FROM audit.logged_actions WHERE action_tstamp_clk NOW() - INTERVAL 30 days;性能考量虽然audit-trigger设计轻量但对高写入表仍可能产生性能影响考虑在非高峰时段启用审计对频繁更新的大表可采用语句级审计而非行级审计定期维护审计表索引保持查询效率 扩展资源项目核心实现audit.sql官方文档http://wiki.postgresql.org/wiki/Audit_trigger_91plus维护状态本项目作为演示用途建议在生产环境使用其活跃分支audit-trigger为PostgreSQL提供了简单而强大的数据变更追踪能力通过触发器机制实现零侵入式审计。无论是小型应用还是企业级系统都能轻松集成并满足数据治理需求。现在就尝试为你的数据库添加审计功能让数据变更尽在掌握【免费下载链接】audit-triggerSimple, easily customised trigger-based auditing for PostgreSQL (Postgres). See also pgaudit.项目地址: https://gitcode.com/gh_mirrors/au/audit-trigger创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考