法国埃穆捷,2026 年 9 月 4 日
Dalibo 欣然宣布推出 PostgreSQL Anonymizer 3.2,带来一组高速假名化过滤器。
PostgreSQL Anonymizer 是一款 PostgreSQL 扩展,用于隐藏或替换数据库中的个人身份信息(PII)或商业敏感数据。
该扩展提供六种不同的数据脱敏策略:
每种策略都有一套增强的脱敏函数作为补充,涵盖替换、随机化、伪造、假名化、局部扰乱、洗牌、添加噪声和泛化等高级技术。
该扩展可通过 Debian 和 RPM 软件包、Ansible 角色、Docker 镜像等方式安装。它适用于阿里云、Crunchy Bridge、Google Cloud SQL、IBM Cloud、Microsoft Azure Database、Neon、Yandex 等主流 DBaaS,也可用于 EDB Advanced Postgres、Greenplum 和 Yugabyte 等 Postgres 分支。
更多信息请参阅文档中的 安装说明。
虽然假名化并不等同于匿名化,但它在某些场景中很有用。
在 3.1 及更早版本中,这项工作由一组 pseudo_* 函数完成,例如 anon.pseudo_last_name(...)、anon.pseudo_email(...) 等。
这些函数现已由新的 anon.seeded_* 函数组取代,例如 anon.seeded_last_name(...)、anon.seeded_email(...) 等。
anon.seeded_* 函数相比旧函数有两项主要优势:
anon.seeded_street_name(id,'fr_FR')为保持向后兼容,anon.pseudo_* 函数仍会保留,但现已弃用,并将在未来版本中移除。我们建议所有用户尽快迁移到新的 anon.seeded_* 函数。
3.2 版修复了三个严重漏洞;在特定情况下,用户可能利用这些漏洞获得超级用户权限。PostgreSQL 14 以及从 PostgreSQL 14 或更早版本升级而来的实例风险尤其高。
相关漏洞如下:
所有用户都应尽快将扩展升级到 3.2 版。
3.2 版引入了一道新的安全屏障,禁止超级用户使用任何形式的脱敏(静态、动态等)。按照“最小权限”原则,该扩展现在会拒绝代表超级用户执行任何脱敏函数。
如果你目前使用超级用户执行静态脱敏、副本脱敏或备份脱敏,我们建议为此创建一个专用角色。
将 anon.nosuperuser 设置为 FALSE 可以恢复原有行为;这样会移除安全屏障,并允许超级用户自行承担风险执行脱敏规则。
3.1 与 3.2 版之间,用于导入和导出的 JSON 模式发生了变化。升级到 3.2 后,建议重新导出规则。
详情请参阅文档中的 升级说明。
本次发布包含 Alain Lesage、Benoit Lobréau 以及其他贡献者提交的代码、错误修复、文档、代码审查和创意。特别祝贺 Alain 完成首次贡献!
CVE-2026-19633 和 CVE-2026-19634 由 IITM Pravartak 安全团队的 Sarath Kumar 报告;CVE-2026-83534 由 Alexander Kukushkin 报告。衷心感谢他们以及 PostgreSQL 安全团队。
我们也感谢 Efluid 团队提供创意、意见和测试,并特别感谢 PGRX 团队的出色工作!
PostgreSQL Anonymizer 是 Dalibo Labs 计划的一部分,主要由 Damien Clochard 和 Benoit Lobréau 开发。
这是一个开放项目,欢迎贡献。我们需要你的反馈和创意:请告诉我们你对这款工具的看法、它如何满足你的需求,以及还缺少哪些功能。
如果你愿意提供帮助,可以查看 Junior Jobs 列表。