PostgreSQL: 匿名化(Anonymizer)工具

栏目: 数据库 · PostgreSQL · 发布时间: 5年前

内容简介:29 December 2018PostgreSQL Anonymizer: 在 PostgreSQL 中隐藏或替换个人身份信息(PII)或者商业敏感信息数据。[项目地址:https://gitlab.com/daamien/postgresql_anonymizer]我坚信匿名化的声明:

29 December 2018

PostgreSQL Anonymizer: 在 PostgreSQL 中隐藏或替换个人身份信息(PII)或者商业敏感信息数据。[项目地址:https://gitlab.com/daamien/postgresql_anonymizer]

我坚信匿名化的声明: 在数据库中敏感信息的存储位置和隐藏信息的规则应该直接通过数据定义语言(DLL)中直接声明 。在 GDPR(如果不知为何物,可以关掉这个页面了) 的时代,开发者应该在表定义中指定匿名化的策略,就像指定数据类型、外键和约定一样。

这个项目的原型设计展示了在 PostgreSQL 内直接实现数据隐蔽的强大能力。目前,他是基于 COMMENT 语法声明(可能是最无用的 PostgreSQL 语法)和一个事件触发器。在不远的将来,我希望为动态数据屏蔽引入新的语法(MS Server 已经这么做了)。

使用这个扩展屏蔽用户信息或者永久修改敏感信息。现在已经有各式各样的屏蔽技术:randomization, partial scrambling, custom rules 等等。

这里基本的例子:

想想一个 people 的表:

=# SELECT * FROM people;
  id  |      name      |   phone
------+----------------+------------
 T800 | n3xtchen | 1351111111

第一步:激活屏蔽引擎

=# CREATE EXTENSION IF NOT EXISTS anon CASCADE;
=# SELECT anon.mask_init();

第二步:声明屏蔽的用户

=# CREATE ROLE skynet;
=# COMMENT ON ROLE skynet IS 'MASKED';

第三步:声明屏蔽规则

# COMMENT ON COLUMN people.name IS 'MASKED WITH FUNCTION anon.random_last_name()';
# COMMENT ON COLUMN people.phone IS 'MASKED WITH FUNCTION anon.partial(phone,2,$$******$$,2)';

第四步:查询屏蔽敏感信息的用户

# \! psql test -U skynet -c 'SELECT * FROM people;'
 id  |   name   |   phone
-----+----------+------------
T800 | n3xtchen | 13******11

这个项目还在开发中。如果有什么好的主意和建议,不要吝啬,通过 github 的 issue 反馈给作者。


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

浅薄

浅薄

[美] 尼古拉斯·卡尔 / 刘纯毅 / 中信出版社 / 2010-12 / 42.00元

《浅薄:互联网如何毒化了我们的大脑》在我们跟计算机越来越密不可分的过程中,我们越来越多的人生体验通过电脑屏幕上闪烁摇曳、虚无缥缈的符号完成,最大的危险就是我们即将开始丧失我们的人性,牺牲人之所以区别于机器的本质属性。——尼古拉斯•卡尔“谷歌在把我们变傻吗?”当尼古拉斯•卡尔在发表于《大西洋月刊》上赫赫有名的那篇封面文章中提出这个问题的时候,他就开启了人们热切渴望的期盼源泉,让人急于弄清楚互联网是在......一起来看看 《浅薄》 这本书的介绍吧!

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具

html转js在线工具
html转js在线工具

html转js在线工具