文档

DMS实现数据库细粒度权限管理

更新时间:
一键部署

在数据库使用时DMS权限管控可以用来完成数据库实例详细的权限申请和审批,可以非常高效的满足用户对数据管理的需求。

场景描述

通过DMS数据管理平台可以可视化对数据库(Schema)、表(Table)、字段(Column)的查询权限、导出权限和变更权限独立进行申请,支持查询对象及权限的独立控制,支持权限的有效期设置。

  1. 敏感数据脱敏方式说明。

    为了迎合部分脱敏的能力,需要对申请的敏感列权限进行区分;原先的敏感列权限,包括查询、导出、变更,如果申请者申请了某个库、某个表的某个敏感列的查询权限,则在SQL查询,对这个敏感列数据的查询结果,直接以明文展示。

    遮掩算法的引入,提供了部分脱敏的能力;敏感列权限的申请,增加了脱敏方式来与部分脱敏搭配使用。

    半脱敏

    以查询权限为例,若申请时脱敏方式选择的是:半脱敏,且当前敏感字段定义了遮掩算法(可提供半脱敏能力),则当申请者在SQL查询对这个字段数据的查询结果,将运用配置的遮掩算法来进行脱敏处理,不再是全脱敏的******,而是根据定义在该字段上面的遮掩算法,来决定其展示。

    明文

    同样以查询权限为例子,若申请时脱敏方式选择的是:明文,则用户在SQL查询对这个字段数据的查询结果,将直接明文展示。

    无权限

    无权限在进行SQL查询时,查询结果按全脱敏处理。

    以上描述的逻辑用下面的流程图来展示,理解起来更直观:1

  2. 配置项说明。

    配置项

    说明

    权限类型

    请按需申请查询、导出、变更权限。

    说明

    支持多选。

    脱敏方式

    请按需选择脱敏方式,当前支持的取值如下:

    • 半脱敏:数据将以对应的遮掩算法生成的形式展现。

    • 明文:数据将以明文形式展现。

    说明

    若您申请了半脱敏的导出权限,您导出的数据也为半脱敏格式。

    期限

    请按需选择您的申请期限。

    申请原因

    请输入申请原因及背景,以减少审批流程中的沟通成本。

组件介绍

数据管理DMS:

数据管理DMS支持统一管理关系型数据库、OLAP数据库、NoSQL数据库。它是一种集数据管理、结构管理、用户授权、安全审计、数据趋势、数据追踪于一体的数据管理服务。您可以使用数据管理服务实现易用的数据库管理入口,让数据更安全、管理更高效、数据价值更清晰。

云数据库RDS(MySQL):

阿里云关系型数据库RDS(RelationalDatabase Service)是一种稳定可靠、可弹性伸缩的在线数据库服务。基于阿里云分布式文件系统和SSD盘高性能存储,RDS支持MySQL、SQL Server、PostgreSQL,并且提供了容灾、备份、恢复、监控、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。

前提条件

  1. 云平台已创建组织A(其用户为A)和组织B(其用户为B);并且分配给A用户数据管理DMS的权限是管理员权限;B用户数据管理DMS的权限是普通用户权限(用于测试需要申请权限的组织)。

  2. 云平台已创建组织A的资源集下的数据库MySQL实例,创建DB、对DB具有读写权限的账号、已经提前在两个数据库中插入了一些测试数据(如创建表member、tableA)。

注意

DMS控制台,针对头三个组织进入后授予了管理员权限,之后的组织都不是管理员,而是普通用户,所以请按照该前提构造一个管理员的组织A,一个普通用户的组织B。

实践步骤

  1. 创建数据表,并插入数据。

    1. 使用管理员账号登录Apsara Uni-manager运营控制台,在页面顶部的菜单栏中,单击产品>数据库>云数据库RDS。进入后创建MySQL实例、DB、账号密码;创建时,初始白名单设置为:0.0.0.0/0。1 在测试机上访问该数据库实例的DB,创建表table831。读写正常;

    2. 创建完成后,选择数据库实例,单击管理,在左侧导航栏选择数据安全性,单击白名单设置,修改白名单为127.0.0.1。修改完后,使用测试机访问数据库实例,无法访问。

    3. 修改白名单为测试机IP/掩码。修改完后,使用测试机访问数据库实例,可以访问。22

    4. 在测试机上访问该数据库实例的DB,创建表member,读写正常;选择数据库实例,单击管理,在左侧导航栏选择数据安全性,单击SQL审计,可查看SQL审计结果。4

  2. 同步数据库到数据管理DMS。

    1. 使用A用户登录Apsara Uni-manager运营控制台,在页面顶部的菜单栏中,单击产品>数据库>数据管理DMS。在左侧导航栏选择实例管理,将前面创建的MySQL实例同步到数据管理DMS。2

    注意

    添加实例的安全规则设置为中或高等级;

  3. 数据库、表的权限申请与审批。

    1. 使用B用户登录Apsara Uni-manager运营控制台,进入数据管理DMS控制台,进入任务类型,选择权限申请,申请库权限。输入数据库名称前缀(如:数据库DB名称testdb,这里输入test即可)进行搜索,双击相应的数据库,选择权限类型和期限; 3

      单击提交申请后,会显示当前申请需要审批的状态:4

    2. 切换到A用户,进入数据管理DMS控制台,在工作台选择待处理工单,进入后单击工单ID,进入工单详情,单击同意,输入同意意见进行审批通过该申请;5

      按照上述方法,给B用户申请库、表权限。并执行一次查询,检查查询结果。

    3. 切换到组织B,进入数据管理DMS控制台,在工作台,单击我的权限,进入权限列表页面,可以对权限类型进行操作;6

  4. 数据库表、表权限有效性验证。

    1. 查询权限验证:单击上图权限右侧操作下的查询,跳转到SQL Console页面,在页面上输入一个查询语句,如:select * from member; ,确保该表是插入的测试数据,F8执行,可以看到查询结果,代表权限验证通过;7

    2. 设置敏感列。

      1. A用户进入数据管理DMS控制台,进入实例管理,单击实例左侧的小三角,展开的实例数据库中单击数据库,在表列表中选择一个表单击更多,进行安全级别调整。在弹出的框中选择敏感,单击提交字段安全级别变更申请:(A用户自己提交的申请不必审批)。8

      2. 切换到B用户,重复步骤3.iii的操作,选择有权限的数据库、Schema,单击右侧>操作>查询,未授权的敏感列的值不能显示(*表示)。9

    3. 敏感列授权。 B用户进入数据管理DMS控制台,单击申请敏感列权限>敏感列,进入后填写信息,单击提交申请1

      切换回A用户,审批通过后,再切换回B用户,进行查询。申请的敏感列可以被显示。2

综上,可得出:DMS支持将敏感、机密字段(如手机号码)设置成敏感列,并且DMS提供的遮掩算法支持用户灵活配置。

  • 本页导读
文档反馈