
PostgreSQL审计神器supa_audit从安装到实战的完整教程【免费下载链接】supa_auditGeneric Table Auditing项目地址: https://gitcode.com/gh_mirrors/su/supa_auditsupa_audit是一款专为PostgreSQL设计的审计神器它提供了通用的表数据变更跟踪解决方案能够高效记录数据的插入、更新、删除和截断操作帮助开发者轻松实现数据变更的全程监控。 为什么选择supa_audit在数据库管理中追踪数据变更历史至关重要无论是合规审计、故障排查还是数据恢复。supa_audit作为PostgreSQL的扩展具有以下优势自动记录无需编写复杂的触发器和审计表结构高效查询使用UUID标识记录支持线性时间历史查询轻量集成简单SQL命令即可启用/禁用审计功能全面跟踪记录INSERT/UPDATE/DELETE/TRUNCATE所有操作类型 快速安装指南前提条件PostgreSQL 11或更高版本uuid-ossp扩展supa_audit依赖项一键安装步骤通过PostgreSQL的CREATE EXTENSION命令即可完成安装create extension supa_audit cascade;提示cascade参数会自动安装所需的依赖扩展⚙️ 基础使用教程启用表审计对目标表启用审计功能非常简单只需执行-- 假设我们有一个名为public.account的表 select audit.enable_tracking(public.account::regclass);执行数据操作像往常一样执行数据操作-- 插入记录 insert into public.account(id, name) values (1, Foo Barsworth); -- 更新记录 update public.account set name Foo Barsworht III where id 1; -- 删除记录 delete from public.account where id 1; -- 截断表 truncate table public.account;查看审计历史所有变更都会记录在audit.record_version表中select * from audit.record_version;典型的审计记录输出如下id | record_id | old_record_id | op | ts | table_oid | table_schema | table_name | record | old_record -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 1 | 57ca384e-f24c-5af5-b361-a057aeac506c | | INSERT | Thu Feb 10 17:02:25.621095 2022 | 16439 | public | account | {id: 1, name: Foo Barsworth} | 2 | 57ca384e-f24c-5af5-b361-a057aeac506c | 57ca384e-f24c-5af5-b361-a057aeac506c | UPDATE | Thu Feb 10 17:02:25.622151 2022 | 16439 | public | account | {id: 1, name: Foo Barsworht III} | {id: 1, name: Foo Barsworth} 3 | | 57ca384e-f24c-5af5-b361-a057aeac506c | DELETE | Thu Feb 10 17:02:25.622495 2022 | 16439 | public | account | | {id: 1, name: Foo Barsworth III} 4 | | | TRUNCATE | Thu Feb 10 17:02:25.622779 2022 | 16439 | public | account | |禁用表审计如果不再需要审计某个表可以禁用跟踪select audit.disable_tracking(public.account::regclass); 高级查询技巧高效查询特定表的历史为获得最佳性能建议使用table_oid进行过滤select * from audit.record_version where table_oid public.account::regclass::oid;查看特定记录的变更历史使用record_id追踪单条记录的完整变更轨迹select * from audit.record_version where record_id 57ca384e-f24c-5af5-b361-a057aeac506c;⚡ 性能优化建议写入性能考量审计功能会略微降低写入性能官方建议对于写入吞吐量超过3k次/秒的表不建议启用审计对频繁更新的大表使用时需评估性能影响查询性能优化始终使用table_oid而非表名进行过滤对审计表创建适当的索引如按时间范围查询时定期归档历史数据以保持查询效率 测试与验证运行测试套件项目提供了完整的测试套件使用以下命令运行nix-shell --run pg_13_supa_audit make installcheck测试文件位于test/sql/目录包括detect_supabase.sqldisable_idempotent.sqlenable_and_disable_tracking.sqlenable_idempotent.sqlrequire_primary_key.sqlsimple_insert_update_delete_truncate.sqltrack_table_schema_not_on_search_path.sql交互式测试通过以下命令进入交互式PostgreSQL环境测试nix-shell --run pg_13_supa_audit psql 版本信息当前最新版本0.3.1版本升级脚本位于项目根目录supa_audit--0.1.0--0.2.0.sqlsupa_audit--0.2.0--0.2.1.sqlsupa_audit--0.2.1--0.2.2.sqlsupa_audit--0.2.2--0.2.3.sqlsupa_audit--0.2.3--0.3.0.sqlsupa_audit--0.3.0--0.3.1.sql 总结supa_audit作为PostgreSQL的轻量级审计扩展以其简单易用、功能全面的特点成为数据库审计的理想选择。无论是小型项目还是企业级应用都能通过它轻松实现数据变更的跟踪与管理。按照本教程的步骤你可以快速上手并充分利用这个强大工具来增强数据库的可追溯性和安全性。想要获取更多信息或参与项目开发请查看项目源码和测试文件。【免费下载链接】supa_auditGeneric Table Auditing项目地址: https://gitcode.com/gh_mirrors/su/supa_audit创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考