如何跨项目工作空间访问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

相关实践学习
借助OSS搭建在线教育视频课程分享网站
本教程介绍如何基于云服务器ECS和对象存储OSS,搭建一个在线教育视频课程分享网站。
目录
相关文章
|
6天前
|
SQL 分布式计算 监控
MaxCompute提供了一些工具以帮助您监控作业和资源使用情况。
【2月更文挑战第4天】MaxCompute提供了一些工具以帮助您监控作业和资源使用情况。
18 8
|
6天前
|
DataWorks 关系型数据库 MySQL
dataworks问题之数据源一直失败如何解决
DataWorks数据集是指在阿里云DataWorks平台内创建、管理的数据集合;本合集将介绍DataWorks数据集的创建和使用方法,以及常见的配置问题和解决方法。
19 2
|
6天前
|
DataWorks 关系型数据库 对象存储
dataworks数据集问题之同步任务如何解决
DataWorks数据集是指在阿里云DataWorks平台内创建、管理的数据集合;本合集将介绍DataWorks数据集的创建和使用方法,以及常见的配置问题和解决方法。
24 4
|
6天前
|
DataWorks 关系型数据库 MySQL
dataworks问题之数据源创建如何解决
DataWorks数据集是指在阿里云DataWorks平台内创建、管理的数据集合;本合集将介绍DataWorks数据集的创建和使用方法,以及常见的配置问题和解决方法。
24 3
|
4天前
|
分布式计算 大数据 Java
maxcompute函数问题之数据量较大经常OOM如何解决
MaxCompute函数包括内置函数和自定义函数(UDF),它们用于在MaxCompute平台上执行数据处理和分析任务;本合集将介绍MaxCompute函数的使用方法、函数编写和优化技巧,以及常见的函数错误和解决途径。
|
4天前
|
分布式计算 DataWorks 大数据
maxcompute函数问题之udaf函数传到线上报错如何解决
MaxCompute函数包括内置函数和自定义函数(UDF),它们用于在MaxCompute平台上执行数据处理和分析任务;本合集将介绍MaxCompute函数的使用方法、函数编写和优化技巧,以及常见的函数错误和解决途径。
|
4天前
|
SQL 分布式计算 DataWorks
maxcompute函数问题之注册函数后运行结果错误如何解决
MaxCompute函数包括内置函数和自定义函数(UDF),它们用于在MaxCompute平台上执行数据处理和分析任务;本合集将介绍MaxCompute函数的使用方法、函数编写和优化技巧,以及常见的函数错误和解决途径。
|
4天前
|
SQL 分布式计算 DataWorks
maxcompute函数问题之没有内建函数如何解决
MaxCompute函数包括内置函数和自定义函数(UDF),它们用于在MaxCompute平台上执行数据处理和分析任务;本合集将介绍MaxCompute函数的使用方法、函数编写和优化技巧,以及常见的函数错误和解决途径。
|
4天前
|
JSON 分布式计算 DataWorks
maxcompute函数问题之注册MaxCompute函数失败如何解决
MaxCompute函数包括内置函数和自定义函数(UDF),它们用于在MaxCompute平台上执行数据处理和分析任务;本合集将介绍MaxCompute函数的使用方法、函数编写和优化技巧,以及常见的函数错误和解决途径。
|
4天前
|
SQL 分布式计算 大数据
maxcompute函数问题之无法使用sequence函数如何解决
MaxCompute函数包括内置函数和自定义函数(UDF),它们用于在MaxCompute平台上执行数据处理和分析任务;本合集将介绍MaxCompute函数的使用方法、函数编写和优化技巧,以及常见的函数错误和解决途径。

相关产品

  • 云原生大数据计算服务 MaxCompute