↑↓ 选择 ↵ 打开 ⌫ 改范围 完整检索页

pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。

Brume 2.1:为 PostgreSQL 测试副本提供外键安全的假名化

发布于 2026-11-07,Brume
相关开源软件

Brume 2.1 已发布。这是一款采用 Apache 2.0 许可证的开源工具,可为测试、调试和演示创建确定性的、外键安全的 PostgreSQL 数据库假名化副本。

为什么需要 Brume?

开发团队经常需要真实数据来复现问题、运行测试或准备演示,但复制生产数据会暴露真实的个人信息。传统脱敏脚本也容易破坏引用完整性,迫使用户关闭触发器、暂停约束,或手动修复断裂的关联。

Brume 从源数据库复制指定子集到目标数据库或 .sql 文件,并在写入前即时转换个人数据。目标端的外键从头到尾保持有效。Brume 只从源数据库读取数据。

主要功能

列级策略: FAKE 生成逼真的合成值,MASK 部分隐藏,HASH 单向哈希,NULLIFY 清空敏感值,FPE_ID / FPE_UUID 对标识符执行格式保留加密,DATE_SHIFT 在保持分布的同时平移日期。

确定性输出: 转换由用户自己的密钥控制。同一输入使用同一密钥,在同一个大版本的不同发行版之间始终得到相同输出,因此测试夹具和调试会话可以保持稳定。

引用完整性: 格式保留加密会一致地重写主键及其外键。通过 linked_columns,没有形式外键但在多张表中共享的值(例如 users 与 audit_logs 中的电子邮件)也能得到一致的假名。

子集提取: 可对任意表定义行过滤条件,例如 created_at >= '2025-01-01' 或 tenant_id = 42。Brume 会沿外键按可配置深度向父表和子表扩展,生成规模更小且自洽的数据集。

声明式配置: 一个 brume.yml 文件描述每张表和每列的策略,可像代码一样进行版本控制和评审。配置支持 EMAIL、PHONE、IBAN、ADDRESS 等语义类型以及用于定位嵌套字段的 JSONB 路径。

GDPR

假名化是 GDPR 第 25 条和第 32 条列举的措施之一。Brume 让数据保护官和安全团队能够在生产数据离开环境前,以可评审、可审计的方式描述个人数据的转换过程。

兼容性与安装

Brume 支持 PostgreSQL 12–18,可通过 Debian/Ubuntu(apt)、RHEL/Fedora(dnf)和 macOS(Homebrew)安装。

原文