如何跨项目工作空间访问MaxCompute资源和函数-阿里云开发者社区

开发者社区> 阿里巴巴大数据计算> 正文

如何跨项目工作空间访问MaxCompute资源和函数

简介: 在项目开发过程中,相同云账号之下所创建的不同项目工作空间的资源和函数需要实现互相访问,需要授予什么权限呢?怎么去操作才可以去访问其他工作空间所创建的资源和函数。本文通过三种方式来介绍如何去授权访问跨工作空间的资源和函数。

一、背景介绍
同一个主账号下面的两个工作空间,工作空间名称分别为
A工作空间名称:wei_wwww
A工作空间子账号:mc_oss
B工作空间名称:wei_mc
B工作空间子账号:bigdata_wei
现在B工作空间子账号bigdata_wei需要访问A工作空间子账号mc_oss创建的UDF函数。执行查询语句报错信息如下:
image.png
二、MaxCompute授权简单介绍
MaxCompute提供了ACL授权、跨项目空间数据分享、项目空间数据保护等多种策略。授权操作一般涉及到三个要素,即主体(Subject,可以是用户也可以是角色)、客体(Object)和操作(Action)。在MaxCompute中,主体是指用户或角色,客体是指项目空间中的各种类型对象。我们推荐您优先使用ACL(基于对象)授权,而非Policy(基于策略)授权。
ACL授权中,MaxCompute的客体包括项目空间、表、函数、资源、任务实例
授权方式:

 grant actions on object to subject;

image.png
image.png
三、授权
1、方式一:通过MaxCompute ACL授权
(1)在A工作空间创建一个函数
首先给A空间子账号ram$建伟MaxCompute:mc_oss一个创建函数的权限。
A工作空间名称:wei_wwww

create role worker;--创建角色
grant worker TO ram$建伟MaxCompute:mc_oss;--角色指派
grant CreateInstance, CreateResource, CreateFunction, CreateTable, List ON PROJECT wei_wwww TO  ROLE worker;--对角色授权

子账号:mc_oss创建一个函数udf1225,使用的资源为1225.jar

add jar 1225.jar;
CREATE FUNCTION udf1225 as 'com.aliyun.udf.test.UDF_DEMO' using '1225jar';

(2)在B工作空间授权操作
B工作空间中的子账号想要访问A工作空间中子账号创建的函数udf1225。我们需要B工作空间的子账号bigdata_wei拥有访问A工作空间的函数和资源的权限。所以需要给B工作空间的子账号bigdata_wei授权。
B工作空间名称:wei_mc
B工作空间子账号:bigdata_wei
首先需要将B工作空间子账号:bigdata_wei添加为A工作空间的成员。

use wei_wwww;--切换到A工作空间
create role mcrole;--创建角色
grant mcrole TO ram$建伟MaxCompute:bigdata_wei;--角色指派
grant Read  ON Function udf1225 TO ROLE mcrole;--对角色授权
grant Read  ON Resource 1225.jar TO ROLE mcrole;--对角色授权

(3)访问函数
切换登陆B工作空间,登录子账号:bigdata_wei去查询A工作空间下面的函数,此时可以正确访问到A工作空间创建的函数和资源。

use wei_mc;
select wei_wwww:udf1225('f');

结果如下图所示:
image.png
注意:主账号不能给其他主账号的子账号授权。
2、方式二:通过Package授权
业务分析人员需要查看生产表但是又不能查看生产任务,我们可以通过单独创建一个分析项目来实现。首先,在多个生产项目创建package,把需要开放的表加到package中。然后,在分析项目中安装package并授权给分析人员。这样可以减少成员管理成本,无需在所有生产项目中增加分析人员,同时保证这些分析人员只能在分析项目中查看package中的表。这里介绍如何通过package授权跨项目访问资源和函数。
(1)创建package

use wei_wwww;--切换到被访问工作空间。
create package udf_package; --创建一个Package。
add resource mc_0703.jar to package udf_package; --添加资源到Package。
add function mc_0703 to package udf_package; --添加表到Package。
allow project wei_mc to install package udf_package; --将Package分享给项目空间wei_mc。

(2)安装package

use wei_mc;--切换需要访问的工作空间。
install package wei_wwww.udf_package; --安装一个Package。
grant Read on package wei_wwww.udf_package to user RAM$建伟maxcompute:delete_test; --通过ACL授权子账号delete_test使用Package。

(3)访问函数

use wei_mc;
set  odps.sql.hive.compatible=true;
select wei_wwww:mc_0703(map(1,2,3,4));

3、方式三:通过Dataworks申请访问权限
数据地图在数据管理的基础上,根据角色区分对应的功能,控制您新建、预览数据等权限,帮助您更好地构建企业级数据信息知识库。您可以在权限管理页面申请函数和资源权限,并查看待我审批、申请记录和我已处理的。下面介绍如何通过数据地图来跨项目访问资源和函数。
(1)在左侧导航栏,单击权限管理,查看和管理权限。
(2)申请函数和资源权限:单击右上角的申请函数和资源权限。
在申请数据权限对话框,配置各项参数
image.png
以下是各项参数详细介绍:
image.png
(3)申请完成资源和函数之后需要管理员去审批通过申请。可以在这里查看审批状态。
image.png

(4)审批通过就可以跨项目访问资源和函数。
注意:需要函数和资源分别申请。

欢迎加入“MaxCompute开发者社区2群”,点击链接申请加入或扫描二维码
https://h5.dingtalk.com/invite-page/index.html?bizSource=____source____&corpId=dingb682fb31ec15e09f35c2f4657eb6378f&inviterUid=E3F28CD2308408A8&encodeDeptId=0054DC2B53AFE745

image.png

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
阿里巴巴大数据计算
使用钉钉扫一扫加入圈子
+ 订阅

阿里大数据官方技术圈

官方博客
链接