暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Mogdb动态脱敏配置

原创 2020 2022-08-31
805

为了在一定程度上限制非授权用户对隐私数据的窥探,MogDB数据可以利用动态数据脱敏(Dynamic Data Masking)特性保护用户隐私数据。在非授权用户访问配置了动态数据脱敏策略的数据时,数据库将返回脱敏后的数据而达到对隐私数据保护的目的

1.动态脱敏相关参数说明

enable_security_policy
参数说明: 安全策略开关,控制统一审计和数据动态脱敏策略是否生效。
GS_MASKING_POLICY_FILTERS系统表记录动态数据脱敏策略对应的用户过滤条件,当用户条件满足FILTER条件时,对应的脱敏策略才会生效。需要有系统管理员或安全策略管理员权限才可以访问此系统表。
GS_MASKING_POLICY系统表记录动态数据脱敏策略的主体信息,每条记录对应一个脱敏策略。需要有系统管理员或安全策略管理员权限才可以访问此系统表。
GS_MASKING_POLICY_ACTIONS系统表记录动态数据脱敏策略中相应的脱敏策略包含的脱敏行为,一个脱敏策略对应着该表的一行或多行记录。需要有系统管理员或安全策略管理员权限才可以访问此系统表。
GS_MASKING视图显示所有已配置的动态脱敏策略信息。需要有系统管理员或安全策略管理员权限才可以访问此视图。

2.配置动态脱敏

(1)设置参数

–设置参数

[omm@node1 ~]$ gs_guc set -I all -N all -c "enable_security_policy=on"
Begin to perform the total nodes: 1.
Popen count is 1, Popen success count is 1, Popen failure count is 0.
Begin to perform gs_guc for datanodes.
Command count is 1, Command success count is 1, Command failure count is 0.
Total instances: 1. Failed instances: 0.
ALL: Success to perform gs_guc!

–重启数据库

[omm@node1 ~]$ gs_om -t restart
Stopping cluster.
=========================================
Successfully stopped cluster.
=========================================
End stop cluster.
Starting cluster.
=========================================
=========================================
Successfully started.

(2)创建测试表

openGauss=# Create table people(id int,name varchar(20),num varchar(20));
CREATE TABLE
openGauss=# Insert into people values(1,'test01','123456');
INSERT 0 1
openGauss=# Insert into people values(1,'test02','3456564');
INSERT 0 1

(3)根据策略配置脱敏

–语法格式

CreateMaskingPolicy ::= CREATE MASKING POLICY policy_name masking_clause[, ...]* policy_filter [ENABLE | DISABLE];
参数说明::
policy_name 审计策略名称,需要唯一,不可重复。

label_name 资源标签名称。

masking_clause 指出使用何种脱敏函数对被label_name标签标记的数据库资源进行脱敏,支持用schema.function的方式指定脱敏函数。

policy_filter 指出该脱敏策略对何种身份的用户生效,若为空表示对所用用户生效。

FILTER_TYPE 描述策略过滤的条件类型,包括IP | APP | ROLES。

filter_value 指具体过滤信息内容,例如具体的IP,具体的APP名称,具体的用户名。

ENABLE|DISABLE 可以打开或关闭脱敏策略。若不指定ENABLE|DISABLE,语句默认为ENABLE。

–将表的敏感列加入标签

openGauss=# create resource label people_lable add column(people.num);
CREATE RESOURCE LABEL

–配置所有用户,查看表时都进行脱敏

openGauss=# create masking policy mask_name_pol maskall on label(people_lable);
CREATE MASKING POLICY

–查看表

openGauss=# select * from people;
 id |  name  |   num
----+--------+---------
  1 | test01 | xxxxxx
  1 | test02 | xxxxxxx
(2 rows)
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论