如何跨项目工作空间访问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,搭建一个在线教育视频课程分享网站。
目录
相关文章
|
13天前
|
分布式计算 DataWorks Java
DataWorks操作报错合集之在使用MaxCompute的Java SDK创建函数时,出现找不到文件资源的情况,是BUG吗
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
26 0
|
14天前
|
分布式计算 大数据 BI
MaxCompute产品使用合集之MaxCompute项目的数据是否可以被接入到阿里云的Quick BI中
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。
|
14天前
|
SQL 分布式计算 大数据
MaxCompute产品使用合集之要增加MaxCompute的自定义资源,该怎么操作
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。
|
13天前
|
分布式计算 DataWorks 数据管理
DataWorks操作报错合集之DataWorks中udf开发完后,本地和在MaxCompute的工作区可以执行函数查询,但是在datawork里报错FAILED: ODPS-0130071:[2,5],是什么原因
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
26 0
|
13天前
|
分布式计算 DataWorks 安全
DataWorks产品使用合集之在 MaxCompute 中,有LEAST 的内置函数如何解决
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
17 0
|
13天前
|
分布式计算 DataWorks Java
DataWorks产品使用合集之DataWorks maxcompute的自定义资源增加如何解决
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
22 0
|
13天前
|
分布式计算 DataWorks Java
DataWorks产品使用合集之DataWorks maxcompute的自定义资源增加如何解决
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
21 0
|
14天前
|
分布式计算 DataWorks 安全
DataWorks产品使用合集之DataWorks创建 MaxCompute 资源背景信息如何解决
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
26 5
|
14天前
|
分布式计算 DataWorks 关系型数据库
DataWorks产品使用合集之在DataWorks中,使用JSON解析函数将MySQL表中的字段解析成多个字段将这些字段写入到ODPS(MaxCompute)中如何解决
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
28 3
|
14天前
|
SQL 分布式计算 DataWorks
MaxCompute产品使用合集之要查看MaxCompute Studio中的项目中的计算任务代码,我该怎么操作
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。

热门文章

最新文章

相关产品

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