华为云:PostgreSQL如何实现特定列脱敏

时间:2021-07-15 | 标签: | 作者:Q8 | 来源:大象数据库网络

小提示:您能找到这篇{华为云:PostgreSQL如何实现特定列脱敏}绝对不是偶然,我们能帮您找到潜在客户,解决您的困扰。如果您对本页介绍的华为云:PostgreSQL如何实现特定列脱敏内容感兴趣,有相关需求意向欢迎拨打我们的服务热线,或留言咨询,我们将第一时间联系您!

< ">1      需求

< ">有些情况下,有些表的特定列含有敏感数据(如用户信息表中,用户手机号),自然,我们只想让“管理员”用户看到这些敏感数据,其他用户我们希望其看到“处理后的”—— 脱敏的数据。

< ">< font-size: 18px;">2      实现方案介绍



< ">方案1: 使用pg匿名化插件postgresql_anonymizer;

< ">方案2: 使用视图进行脱敏;

< ">2.1      方案1: 使用pg匿名化插件postgresql_anonymizer

< ">(示例来自插件官方文档)



-- 修改配置文件:   shared_preload_libraries = 'pg_stat_statements, anon'

-- 1. 创建并激活插件

CREATE   EXTENSION IF NOT EXISTS anon CASCADE;

SELECT   anon.mask_init();

-- 2.声明屏蔽的用户

CREATE ROLE   skynet;

COMMENT ON   ROLE skynet IS 'MASKED';

-- 3.声明屏蔽规则

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)';

-- 4. 查询屏蔽敏感信息的用户

! psql test   -U skynet -c 'SELECT * FRO沈阳网店代运营M people;'

 id    |   name   |     phone

-----+----------+------------

T800 |   n3xtchen | 13******11

< ">2.2      方案2: 使用视图进行脱敏

< ">(示例来自本地开发环境)

-- 1. 创建测试用户

create user   root;

create user   normal_user;

-- 2. 切换到root建表 & 视图

set role root;

create table   user_phone_number(id int, user_name name, phone_number name);

insert into   user_phone_number values(1, '张三', '12345678');

insert into   user_phone_number values(1, '李四', '56781234');

create or   replace view member_phone_number as

    SELECT

            S.id,

            S.user_name,

            substring(S.phone_number, 1,1) ||   '******' ||substring(S.phone_number, 8,8) as phone_number

    FROM user_phone_number AS S;

-- 3. 回收表的权限,授予普通用户view权限

revoke all on   user_phone_number from public;

grant all on   member_phone_number to normal_user;

-- 4. 使用普通用户测试



reset ro中山网页开发le;

set role   normal_user;

select * from   user_phone_number;

select * from   member_phone_number;

结果如下:

< ">< font-size: 18px;">3      优缺点比较

< "> 总的来看,喜欢“偷懒”、喜欢尝鲜的话,可以使用 postgresql_anonymizer 插件;但如果追求稳定,建议使用视图来实现。

< ">< font-size: 18px;">4      参考

1.PostgreSQL: 匿名化(Anonymizer)工具 官网:https://labs.dalibo.com/postgresql_anonymizer

2.PostgreSQL: 匿名化(Anonymizer)工具 官方文档: https://postgresql-anonymizer.readthedocs.io/en/stable/

华为云:PostgreSQL如何实现特定列脱敏

上一篇:如何创建Twitter列表并用来营销?
下一篇:Facebook推广课程:教你Facebook最常用的广告方式


版权声明:以上主题为“华为云:PostgreSQL如何实现特定列脱敏"的内容可能是本站网友自行发布,或者来至于网络。如有侵权欢迎联系我们客服QQ处理,谢谢。
相关内容
推荐内容
扫码咨询
    华为云:PostgreSQL如何实现特定列脱敏
    打开微信扫码或长按识别二维码

小提示:您应该对本页介绍的“华为云:PostgreSQL如何实现特定列脱敏”相关内容感兴趣,若您有相关需求欢迎拨打我们的服务热线或留言咨询,我们尽快与您联系沟通华为云:PostgreSQL如何实现特定列脱敏的相关事宜。

关键词:华为云:PostgreSQL如何实现

关于 | 业务 | 案例 | 免责 | 隐私
客服邮箱:sales@1330.com.cn
电话:400-021-1330 | 客服QQ:865612759
沪ICP备12034177号 | 沪公网安备31010702002418号