MaxCompute创建仅有查询权限的自定义角色

简介: MaxCompute原有的权限模型提供的ACL授权方式,需要明确指定授权对象才能授权,ACL方式不支持通配符方式对新增表做授权。本文通过一个自定义角色的场景,介绍使用MaxCompute新升级的权限模型,利用ACL实现对特定规则的表进行授权。
+关注继续查看

MaxCompute创建只有查询权限的自定义角色

需求场景

在很多的数据开发场景下,MaxCompute项目管理员需要能够提供给某些角色或团队(如开发人员、运维人员)对项目内所有表具备特定权限。例如,某些客户可能需要在生产项目中,给ETL开发团队赋予所有表(或者所有ods开头的表)只读权限,当项目内创建了新表后,对应角色人员可以自动获取到新表的权限,方便开发人员能够快速处理线上数据问题排查。
MaxCompute原有的权限模型提供的ACL授权方式,需要明确指定授权对象才能授权,ACL方式不支持通配符方式对新增表做授权。本文通过一个自定义角色的场景,介绍使用MaxCompute新升级的权限模型,利用ACL实现对特定规则的表进行授权。

前置条件

您的MaxCompute项目需要支持MaxCompute新权限模型。截止目前(2020/1/6),MaxCompute新权限模型正在陆续灰度发布,如果您在参考本文档操作时不能正确执行,很可能您的项目还没有开放新权限模型,您可以主动通过工单进行"权限模型2.0"功能申请。如何申请,请参考这里的说明

MaxCompute项目的内建角色介绍

通过Dataworks的控制台创建的MaxCompute项目,在MaxCompute Project中预置了以下内建角色(Predefined roles,文档链接):

image.png

以上内建角色,没有提供对项目内所有表只读的角色,不满足文前的需求场景。需要创建一个自定义角色来配置可以满足的角色。

创建仅查询数据的MaxCompute自定义角色

在MaxCompute项目中创建自定义角色可以通过MaxCompute命令行方式(MaxCompute客户端工具)和Dataworks的Web Console来创建并授权。

在命令行工具操作

使用MaxCompute命令行工具(odpscmd),访问需要做授权管理的MaxCompute项目。具体操作如下:

创建角色并赋权

1.在目标项目(本demo的项目名称为your_project_name)中创建一个自定义角色_
create role select_only_role;

2.为自定义角色select_only_role对项目内所有表(包括未来项目内新建的表)赋予Describe,Select权限_
_1) 项目下的所有表_
GRANT Describe,SELECT ON table TO Role select_only_role privilegeproperties("policy" = "true");
2)_项目下的所有符合特定规则的表_
GRANT Describe,SELECT ON table orders
TO Role select_only_role privilegeproperties("policy" = "true");

3.给select_only_role角色赋予在your_project_name项目内运行作业(CreateInstance,如提交SQL作业)、查看项目内的数据对象(List,如show tables,list resources等)_
GRANT CreateInstance,List ON project your_project_name TO Role select_only_role ;

_4.给用户赋予自定义角色权限(也可以在Dataworks的自定义角色web-ui界面里,添加某个成员到该自定义角色下)_
grant role select_only_role to RAM$account@company_name.com:ram_account01;**

验证测试

上面刚刚创建了自定义角色select_only_role(这里假设这个角色授权仅能访问orders开头的表),同时将这个角色授权给了子账号ram_account01。
在项目中找到一张在ram_account01在获得select_only_role角色前,不能访问的表orders_test。通过命令,可以查看到表orders_test目前对于角色select_only_role提供了Describe和Select权限。
odps@ your_project_name>show grants on table orders_test;

`Authorization Type: Implicit
<br />
AG project_owner/ALIYUN$account@company_name.com: All<br />
AG object_creator/ALIYUN$account@company_name.com: All`

Authorization Type: Policy
`
A role/role_project_admin: *<br />
A role/role_project_dev: *<br />
A role/role_project_pe: Describe | Read<br />
A role/role_project_scheduler: *<br />
A role/select_only_role: Describe | Select`

同时,ram_account01访问MaxCompute项目,可以查看orders_test表的表结构和数据。

odps@ your_project_name>select * from orders_test limit 10;

在Dataworks中操作

1.在dataworks的项目管理中新建自定义角色select_only_role

1

2.点击角色右侧的"权限管理"按钮,勾选添加List和CreateInstance权限

2

3.在dataworks的临时查询窗口,通过ACL命令为新建角色授权。

3

4.向某个子账号授予select_only_role角色的权限。
在自定义用户角色功能页面中,选择自定义角色的成员管理,将某个子账号添加至该角色下,完成角色授权。

4

5.查询被授权的表,验证是否获得权限

5

除此之外,还可以继续测试是否可以写入、删除该表,进一步验证获取的权限是否符合预期。

结束语

MaxCompute新的权限模型,支持在ACL授权中使用通配符,在原先必须明确指明已经存在的授权对象基础上,可以通过通配符指定所有表或者特定规则表,在角色上实现更灵活的授权管理需求。更多安全管理的介绍,请查看产品官方文档

相关实践学习
简单用户画像分析
本场景主要介绍基于海量日志数据进行简单用户画像分析为背景,如何通过使用DataWorks完成数据采集 、加工数据、配置数据质量监控和数据可视化展现等任务。
一站式大数据开发治理平台DataWorks初级课程
DataWorks 从 2009 年开始,十ー年里一直支持阿里巴巴集团内部数据中台的建设,2019 年双 11 稳定支撑每日千万级的任务调度。每天阿里巴巴内部有数万名数据和算法工程师正在使用DataWorks,承了阿里巴巴 99%的据业务构建。本课程主要介绍了阿里巴巴大数据技术发展历程与 DataWorks 几大模块的基本能力。 课程目标 &nbsp;通过讲师的详细讲解与实际演示,学员可以一边学习一边进行实际操作,可以深入了解DataWorks各大模块的使用方式和具体功能,让学员对DataWorks数据集成、开发、分析、运维、安全、治理等方面有深刻的了解,加深对阿里云大数据产品体系的理解与认识。 适合人群 &nbsp;企业数据仓库开发人员 &nbsp;大数据平台开发人员 &nbsp;数据分析师 &nbsp;大数据运维人员 &nbsp;对于大数据平台、数据中台产品感兴趣的开发者
相关文章
|
3月前
|
SQL 分布式计算 数据可视化
无需导出,Hologres加速查询MaxCompute限时5折
Hologres共享集群(湖仓加速版)提供Severless的在线查询加速服务,基于存算分离的架构,针对MaxCompute交互式分析场景,无需将数据导出,即可将查询性能提升数十倍以上。
|
3月前
|
数据采集 SQL 分布式计算
大数据数据采集的数据迁移(同步/传输)的Sqoop之基本命令和使用的查询库/表
在大数据领域中,Sqoop是一款非常流行的数据迁移工具。它可以将关系型数据库中的数据快速地移动到Hadoop生态系统中,方便我们进行更深入的分析和处理。本文将介绍Sqoop的基本命令及如何使用Sqoop来查询库表,希望能够为大家提供一些参考和帮助。
64 0
|
7月前
|
大数据 C++ Python
【浏览器&exe桌面应用】用PyInstaller cefpython打包exe,制作自己的浏览器;查询机客户端,大屏展示客户端,大数据展示客户端
【浏览器&exe桌面应用】用PyInstaller cefpython打包exe,制作自己的浏览器;查询机客户端,大屏展示客户端,大数据展示客户端
139 0
【浏览器&exe桌面应用】用PyInstaller cefpython打包exe,制作自己的浏览器;查询机客户端,大屏展示客户端,大数据展示客户端
|
8月前
|
关系型数据库 MySQL 大数据
【大数据系列之MySQL】(十一):MySQL中select语句查询用法
【大数据系列之MySQL】(十一):MySQL中select语句查询用法
173 0
【大数据系列之MySQL】(十一):MySQL中select语句查询用法
|
9月前
|
SQL 分布式计算 DataWorks
SELECT查询MaxCompute表没有返回数据
SELECT查询MaxCompute表没有返回数据
SELECT查询MaxCompute表没有返回数据
|
存储 SQL 消息中间件
大数据生态圈常用组件(一):数据库、查询引擎、ETL工具、调度工具等
大数据生态圈常用组件(一):数据库、查询引擎、ETL工具、调度工具等
|
SQL 分布式计算 大数据
大数据入门与实战-Hive操作与SQL 查询
大数据入门与实战-Hive操作与SQL 查询
126 0
大数据入门与实战-Hive操作与SQL 查询
|
SQL 大数据 Java
hive(在大数据集合上的类SQL查询和表)学习
hive(在大数据集合上的类SQL查询和表)学习
100 0
|
前端开发 Java 大数据
select2,利用ajax高效查询大数据列表2(可搜索、可分页)
select2,利用ajax高效查询大数据列表(可搜索、可分页)
122 0
|
前端开发 JavaScript 搜索推荐
select2,利用ajax高效查询大数据列表 1(可搜索、可分页)
select2,利用ajax高效查询大数据列表(可搜索、可分页)
328 0
select2,利用ajax高效查询大数据列表 1(可搜索、可分页)
相关产品
云原生大数据计算服务 MaxCompute
推荐文章
更多