PostgreSQL Anonymizer 3.0:并行静态脱敏 + JSON 导入/导出

发布于 2026-02-19,Dalibo
相关开源软件

法国埃穆捷 - 2026 年 2 月 11 日

Dalibo 发布了 PostgreSQL Anonymizer 3.0,这是我们隐私设计扩展的一个全新主要版本。

为您的数据提供增强的隐私保护

PostgreSQL Anonymizer 是一个用于隐藏或替换 PostgreSQL 数据库中个人身份信息(PII)或商业敏感数据的扩展。

该扩展提供 6 种不同的脱敏策略:

每种策略都配备了增强的脱敏函数套件,包括替换、随机化、伪造、假名化、部分混淆、洗牌、噪声添加和泛化等高级技术。

该扩展可以通过 Debian 和 RPM 软件包、Ansible Role、Docker 镜像等方式安装。您可以在大多数主流 DBaaS 提供商上使用它,包括:Alibaba Cloud、Crunchy Bridge、Google Cloud SQL、IBM Cloud、Microsoft Azure Database、Neon、Yandex。

它还可在一些 Postgres 分支上使用,如 EDB Advanced Postgres、Greenplum 和 Yugabyte。

更多详情请参阅文档的安装部分!

并行静态脱敏

对于大型数据库,静态脱敏可能是一个耗时的操作。为了提高性能,该扩展支持使用 PostgreSQL 后台工作进程进行并行静态脱敏。

您可以使用并行版本代替 anon.anonymize_database()

sql SELECT anon.anonymize_database_parallel(4);

参数指定要使用的并行工作进程数量。该函数将:

  1. 分析表之间的外键关系
  2. 对表进行分组以避免约束冲突
  3. 将工作分配到多个后台工作进程
  4. 在可能的情况下并行处理表

此功能由 Pierre-Marie Petit 添加。

JSON 导入/导出

当脱敏策略包含大量规则时,将它们作为一长串安全标签来维护可能会很困难。为了简化管理并帮助自动化脱敏规则的管理,现在可以通过以下函数以 JSON 格式导入和导出规则:

  • anon.export_current_database_rules(policy text DEFAULT 'anon')
  • anon.export_roles_rules(policy text DEFAULT 'anon')
  • anon.import_database_rules(database_rules jsonb, policy text DEFAULT 'anon')
  • anon.import_roles_rules(role_rules jsonb, policy text DEFAULT 'anon'

由于角色是实例级别的对象,它们必须单独管理。

此功能由 Benoit Lobreau 贡献。

重要安全更新

3.0 版本包含了 2 个关键漏洞的修复,这些漏洞允许用户在特定情况下获取超级用户权限。在 PostgreSQL 14 以及从 PostgreSQL 14 及更早版本升级的实例上风险非常高。

所有用户应尽快将扩展升级到 3.0 版本。

如果无法快速升级,以下解决方法可以降低风险:

REVOKE CREATE ON SCHEMA public FROM PUBLIC;
DROP FUNCTION anon.get_tablesample_ratio(OID);

更多详情请参阅 issue 616(CVE-2026-2360)和 issue 617(CVE-2026-2361)。

弃用和移除的功能

这个主要版本带来了一系列不兼容变更,特别是:

  • 不再支持 PostgreSQL 13
  • 旧版静态脱敏自 2.0 版本起已弃用,现已完全移除
  • anon.pg_masking_rules 视图已被 anon.{all|sys|user}_rules 替代
  • 对 RHEL 8 的支持现已弃用,计划在 2027 年的 4.0 版本中完全移除

升级说明请参阅文档中的升级部分。

致谢

此版本还包含了 Pierre-Marie Petit、Benoit Lobreau、Robin Portigliatti、Ludovic Gilbon 以及其他贡献者提供的代码、Bug 修复、文档、代码审查和建议。

我们要感谢 Efluid 的同仁们通过他们的想法、意见和测试给予的帮助。

同时特别感谢 PGRX 团队的出色工作!

加入我们的社区,共同改善数据隐私!

PostgreSQL Anonymizer 是 Dalibo Labs 计划的一部分,主要由 Damien Clochard 开发。

这是一个开源项目,欢迎贡献。我们需要您的反馈和想法!请告诉我们您对这个工具的看法,它如何满足您的需求,以及还缺少哪些功能。

如果您想提供帮助,可以查看新手任务列表。