法国图尔,2022年9月28日
PostgreSQL Anonymizer 是一款用于隐藏或替换 PostgreSQL 数据库中个人身份信息(PII)或商业敏感数据的扩展。
该扩展支持三种不同的匿名化策略:动态脱敏 (https://postgresql-anonymizer.readthedocs.io/en/latest/dynamic_masking/)、静态脱敏 (https://postgresql-anonymizer.readthedocs.io/en/latest/static_masking/) 和匿名导出 (https://postgresql-anonymizer.readthedocs.io/en/latest/anonymous_dumps/)。它还提供了丰富的脱敏函数 (https://postgresql-anonymizer.readthedocs.io/en/latest/masking_functions/) 可供选择,包括替换、随机化、伪造、假名化、部分混淆、洗牌、噪声添加和泛化。
隐私默认
GDPR 法规(及其他隐私法律)引入了"默认数据保护"的概念。简单来说,这意味着组织应当默认确保以最高隐私保护标准处理数据,使个人数据默认不会对不特定的多数人公开。
将这一原则应用于匿名化,我们就得出了"隐私默认"的理念——即所有表的所有列都应默认进行脱敏处理,无需为每一列逐一声明脱敏规则。
要启用此功能,只需将选项 anon.privacy_by_default 设置为 on。
ALTER DATABASE foo SET anon.privacy_by_default = True;
```
现在 foo 数据库的所有列都将使用列的默认值(如已定义)或 NULL 进行匿名化处理。
注意事项:如果某些列声明为 NOT NULL,则必须定义默认值,否则在匿名化数据库时会出现约束违规错误。
有关此功能的更多详细信息,请访问以下链接:
https://postgresql-anonymizer.readthedocs.io/en/latest/privacy_by_default/ (https://postgresql-anonymizer.readthedocs.io/en/latest/privacy_by_default/)
一致性匿名导出
在 1.0 版本之前,pg_dump_anon 是一个 bash 脚本。该脚本简洁实用,但在某些条件下匿名备份无法保证一致性。
现在推出了全新版本的 pg_dump_anon(使用 Golang 重写),能够始终生成一致性的导出。
之前的脚本现已重命名为 pg_dump_anon.sh,仍可用于向后兼容,但将在 2.0 版本中被弃用。
https://postgresql-anonymizer.readthedocs.io/en/latest/anonymous_dumps/ (https://postgresql-anonymizer.readthedocs.io/en/latest/anonymous_dumps/)
安装方式
该扩展正式支持 PostgreSQL 9.6 及更高版本。
在 Red Hat、CentOS 和 Rocky Linux 系统上,可以直接从 PostgreSQL 官方 RPM 仓库 (https://yum.postgresql.org/) 安装:
dnf install postgresql_anonymizer14
```
然后加载扩展:
ALTER DATABASE foo SET session_preload_libraries = 'anon';
```
在数据库中创建扩展:
CREATE EXTENSION anon CASCADE;
```
最后,初始化扩展:
SELECT anon.init();
```
对于其他系统,请参阅安装文档 (https://postgresql-anonymizer.readthedocs.io/en/latest/INSTALL/):
https://postgresql-anonymizer.readthedocs.io/en/latest/INSTALL/ (https://postgresql-anonymizer.readthedocs.io/en/latest/INSTALL/)
致谢
本次发布包含了来自 Michel Pelletier、Gergő Rubint、Mahesh Moturu、Greg Pringle、Christophe Courtois 及其他贡献者 (https://gitlab.com/dalibo/postgresql_anonymizer/-/blob/master/AUTHORS.md) 的代码、缺陷修复、文档、代码审查和建议。
非常感谢他们的帮助和反馈。
如何贡献
PostgreSQL Anonymizer 是 Dalibo Labs (https://labs.dalibo.com) 计划的一部分,主要由 Damien Clochard (https://www.dalibo.com/en/equipe#daamien) 开发。
这是一个开放项目,欢迎贡献。我们需要你的反馈和想法!请告诉我们你对该工具的看法、它如何满足你的需求,以及还缺少哪些功能。
如果你想提供帮助,可以在这里找到一份"初级任务"列表:
https://gitlab.com/dalibo/postgresql_anonymizer/issues?label_name%5B%5D=Junior+Jobs (https://gitlab.com/dalibo/postgresql_anonymizer/issues?label_name%5B%5D=Junior+Jobs)