对于外部项目的用户以及权限操作

当外部项目(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管理外部项目