当外部项目(External Project)创建成功后,其表的所有者归属于创建External Project的账号。如果您需要将外部项目权限或表操作权限授权给其他用户,请根据本文进行操作。
注意事项
由于MaxCompute在湖仓一体模式下不持久化数据源元数据,权限策略依据数据源对象名称管理。数据源对象名称变更会导致授权失效,须通过Revoke
命令或删除Policy移除授权;未及时移除可能导致新同名对象继承旧策略的权限定义,允许原用户获得外部项目中的数据源新同名对象的非预期权限。
授权命令
切换为External project。
use <external_project_name>;
external_project_name为External Project名称。
如果使用RAM用户,需要在External Project中先打开RAM支持。
add accountprovider ram;
如果是基于Hadoop外部数据源的外部项目,需要打开Hive兼容模式。
set odps.sql.hive.compatible=true;
添加用户。
add user <阿里云账号>;
阿里云账号格式为
ALIYUN$<account_name>
,您可以通过MaxCompute客户端(odpscmd)执行list users;
命令查看用户信息。赋予show tables权限。
grant List on project external_project to USER <阿里云账号>;
阿里云账号格式为
ALIYUN$<account_name>
,您可以通过MaxCompute客户端(odpscmd)执行list users;
命令查看用户信息。赋予某张表全部权限。
grant All on table <table_name> to user <阿里云账号>;
阿里云账号格式为
ALIYUN$<account_name>
,您可以通过MaxCompute客户端(odpscmd)执行list users;
命令查看用户信息。切换为运行作业的项目。
use <main_project_name>;
阿里云账号格式为
ALIYUN$<account_name>
,您可以通过MaxCompute客户端(odpscmd)执行list users;
命令查看用户信息。赋予执行作业的权限。
grant CreateInstance on project <main_project_name> to user <阿里云账号>;
阿里云账号格式为
ALIYUN$<account_name>
,您可以通过MaxCompute客户端(odpscmd)执行list users;
命令查看用户信息。
当需要对其他阿里云账号或RAM用户授予External Project表访问权限时,请您按照MaxCompute的标准安全规范进行授权。详情请参见权限概述。
相关文档
如果您想对外部项目及其中的表进行管理,例如执行查询或更新表数据等操作,请参见使用SQL管理外部项目。