作者:申晋奉,瀚高大学PG实验室核心成员,数据库高级工程师,擅长HGDB、Post-greSQL、Oracle等主流数据库。

功能介绍

该功能在 HGDB-SEE V4.5.7 及之后的版本中提供。

数据编辑(Data Redaction)功能是一种动态数据脱敏机制,可以为不同角色、不同权限、不同数据类型执行不同的脱敏方案,在数据查询时对敏感数据进行动态的安全保护,

一个完整的数据编辑策略由三部分组成:数据编辑函数、数据编辑策略应用 SQL命令、相应的权限配置。

1.使用内置的数据编辑函数;

2.通过绑定策略语句将函数与目标数据关联;

3.数据编辑函数及策略仅可通过 SYSSSO 用户创建、修改、删除、禁用、启用、授权操作

适用场景

百度词条对数据脱敏的介绍:指对某些敏感信息通过脱敏规则进行数据的变形,实现敏感隐私数据的可靠保护。这样就可以在开发、测试和其它非生产环境以及外包环境中安全地使用脱敏后的真实数据集。在涉及客户安全数据或者一些商业性敏感数据的情况下,在不违反系统规则条件下,对真实数据进行改造并提供测试使用,如身份证号、手机号、卡号、客户号等个人信息都需要进行数据脱敏。是数据库安全技术之一。

配置步骤

1、参数开关

在启用数据编辑之前,需打开参数开关:redaction_policy。可通过命令行或直接修

改 conf 文件进行修改。命令行格式如下:

alter system set redaction_policy to on;
select pg_reload_conf();

2、测试步骤

创建测试用户:

1、create user dzqzpassword 'Hello@123';
2、create user sms password 'Hello@123';
3、create user ruoyipassword 'Hello@123';

在用户dzqz下创建测试表,并赋予sms、ruoyi的查询权限

1.CREATE TABLE dzqz.student(
2.id serial,
3.name character varying(10),
4.birthday timestamp without time zone,
5.sex character(1),
6.address character varying(50),
7.tel character varying(13)
8.email character varying(100),
9.bankcard character varying(30)
10.);
11.insert into dzqz.student (id,name,birthday,sex,address,tel,email,bankcard) values
12.('2','刘明','1985-01-23 00:00:00.0','1','河南省郑州郑西区花园小区11号','17789235146','17789235146@163.com','95599-80868-43587-5810');
13.insert into dzqz.student (id,name,birthday,sex,address,tel,email,bankcard) values
14.('3','郑霞','1985-10-23 00:00:00.0','0','河南省郑州管城区111号','13567890012','13567890012@126.com','62170-03860-00279-5290');
15.insert into dzqz.student (id,name,birthday,sex,address,tel,email,bankcard) values
16.('4','牛美丽','1986-04-23 00:00:00.0','0','重庆解放牌嘉陵西路200号','13987560029','13987560029@sina.com','62226-20590-00078-1124');
17.insert into dzqz.student (id,name,birthday,sex,address,tel,email,bankcard) values
18.('1','张立生','1986-01-23 00:00:00.0','1','河北省邯郸临漳区三台街道11号','13456789012','13456789012@qq.com','62111-62550-20091-8255');
19.---赋权给sms和ruoyi用户
20.grant select on table studenf to sms、ruoyi;

查询数据结果为:

HGDB之数据编辑_数据编辑

测试一:对name列进行脱敏处理

使用syssso用户设置策略,此策略只针对sms用户生效。

HGDB之数据编辑_安全版_02

此时切换到sms,查看效果,name列已经显示为带*号的密文了。

HGDB之数据编辑_数据编辑_03

再切换到ruoyi,查看效果,此时显示是明文的姓名。

HGDB之数据编辑_安全版_04

测试二、对email列、bankcar列进行处理

这一回设置对用户ruoyi和sms都生效,仍然使用syssso设置策略

用sms用户查看

HGDB之数据编辑_安全版_05

用ruoyi用户查看

HGDB之数据编辑_数据编辑_06

3、修改策略

目前修改策略可使用以下几种方式:

(1)ALTER REDACTION POLICY policyname MODIFY COLUMN colname USING func_name;

修改当前策略中,列 colname 使用的数据编辑函数

(2)ALTER REDACTION POLICY policyname RENAME TO policyname2;

修改当前策略的名字

(3)ALTER REDACTION POLICY policyname DISABLE/ENABLE;

修改当前策略是否启用

(4)ALTER REDACTION POLICY policyname DROP COLUMN colname;

修改当前策略,删除掉其中的某一行数据编辑列

(5)ALTER REDACTION POLICY policyname for (user = ‘username’);

修改当前策略,增加数据编辑表达式

(6)ALTER REDACTION POLICY policyname ADD COLUMN colname USING func_name

修改当前策略,增加数据编辑列

4、删除策略

DROP REDACTION POLICY policynamelist

例:

(1)DROP REDACTION POLICY p1;

删除数据编辑策略 p1

(2)DROP REDACTION POLICY p1,p2;

删除数据编辑策略 p1,p2

5、限制

1、创建策略只能使用 syssso 进行设定,其他用户无权限。

2、一张表中只能创建一个策略

3、一个列只能指定一个数据编辑函数

规则介绍

1、函数列表

HGDB之数据编辑_数据编辑_07

HGDB之数据编辑_安全版_08