本文为您介绍如何对表中行数据进行管控,以及申请行权限。
应用场景
DMS的行级管控可保护横向数据安全,所有的行通过一个或若干个确定的值(管控字段的取值)进行区分,实现对行数据的管控。
如果您需要使员工仅可查看自己负责地域的数据,不能查看全部区域的数据,可以使用DMS的行级管控功能。
如果您数据库下有多张表,且多张表都需要使用同样的管控值进行行级管控,则可通过一个管控组同时对多张表进行管控。
前提条件
操作步骤
本示例以满足前提条件的poc_prod
生产类型数据库举例。
步骤一:添加行级管控
登录数据管理DMS 5.0。
单击控制台左上角的图标,选择
。说明若您使用的是非极简模式的控制台,在顶部菜单栏中,选择
。单击页面右上角的全域敏感数据列表,进入设置行级管控的页面。
说明您也可以在实例列表区域的已开启页签下,单击目标实例右侧的敏感数据列表,进入设置行级管控的页面。
添加管控组。
在行级管控页签下,单击添加管控组,并输入管控组名称。
添加行配置。
单击添加行配置。
搜索并选择目标数据库。
选择目标表和需要设置管控的字段。
说明同一个管控组中不可重复定义行级管控表,且一张表仅支持定义一个字段。
单击添加。
添加管控行值。
单击管控组名称右侧的详情。
在详情页面,单击添加行值,配置如下信息。
配置项
说明
是否追加
取值及说明如下:
是:本次导入将在现有的行值列表上继续新增。
否:本次导入将会覆盖原来的行值列表。
行值内容
增加管控的行值。多行值内容,需要使用英文逗号(,)分隔。
单击导入。
出现导入行值成功的提示后,表示行值已追加成功。
步骤二:申请行权限
所有用户(包含管理员、DBA)在查询该行的数据前,都需要申请受管控的行权限。
登录数据管理DMS 5.0。
单击控制台左上角的图标,选择
。说明若您使用的是非极简模式的控制台,在顶部菜单栏中,选择
。在权限申请工单列表页面,单击右上角的
。选中目标行,单击添加,将其移动至确认已选择的库/表/列框中。
在选择权限区域,选择查询权限,再配置期限和申请原因等信息。
配置完成后,单击提交申请。等待审批通过,在SQL窗口查询行级管控数据。
说明提交申请后,请等待审批通过,您可以在工作台的首页,查看权限申请工单的审核进度。
其他操作
删除行级管控组:在行级管控的页签下,删除管控组。删除管控组后,设置的行级管控能力将失效。
编辑行级管控组:在行级管控的页签下,编辑管控组名称及设置的原管控字段等信息。
常见问题
Q:为什么在授予管控行的查询权限后,在SQL窗口执行查询SQL时还会失败?
A:请根据如下步骤进行排查:
请确保您具有目标数据库、表的查询权限。授权的具体操作,请参见申请行权限。
在SQL窗口使用包含WHERE条件的SQL语句查询管控的数据行。
例如,受管控的字段为buyer_name,受管控的行值为name1、name2和name3,在已有数据库、表dms_test的查询权限的前提下,通过SQL窗口执行如下SQL,查询受管控的数据行。
查询单个管控值所在的数据行时,可在SQL语句的WHERE条件中使用
=
和IN
。示例SQL如下:SELECT * FROM dms_test WHERE buyer_name ='name1';
查询多个管控值所在的数据行时,可在WHERE条件中使用
IN
。示例SQL如下:SELECT * FROM dms_test WHERE buyer_name IN ('name1', 'name2','name3');