文档

权限管理常见问题

更新时间:

本文为您介绍MaxCompute的权限管理常见问题。

问题类别

常见问题

授权方案

为用户授权

权限报错

如何跨项目读取数据?

您可以基于Package实现跨项目读取数据的功能,Package是一种跨项目共享数据及资源的机制,主要用于解决跨项目的用户授权问题。使用Package之后,项目管理员可以对其他项目需要使用的对象进行打包授权(也就是创建一个Package),然后许可其他项目安装此Package,其他项目管理员安装Package之后,就可以自行管理Package进一步授权给自己项目中的用户。

更多Package使用及权限控制信息,请参见基于Package跨项目访问资源Package的权限控制

MaxCompute项目的所有者能否更换为RAM用户?

项目所有者不可以更换,创建项目的人即是项目所有者。项目所有者可以将Admin角色赋予RAM用户。

与项目所有者相比,Admin角色有哪些限制?

与项目所有者相比,Admin角色不能执行如下操作:

  • Admin角色不能将Admin权限指派给用户。

  • 不能设定项目的安全配置。

  • 不能修改项目的鉴权模型。

  • Admin角色所对应的权限不能被修改。

RAM用户无法访问DataWorks,提示缺少AccessKey ID,但实际有AccessKey ID,如何解决?

RAM用户需要在个人信息中绑定AccessKey信息。进入个人信息页面,单击修改AccessKey信息,输入AccessKey IDAccessKey Secret。完成配置后,请您重新尝试访问DataWorks。

为RAM用户申请生产环境表的权限时,提示授权失败,如何解决?

  • 问题现象

    阿里云账号为RAM用户授权生产环境表的权限时,返回如下报错。

    class java.lang.IllegalArgumentException: AccessId should not be empty.
  • 产生原因

    阿里云账号或RAM用户的AccessKey ID和AccessKey Secret未完成配置。

  • 解决措施

    使用阿里云账号或以RAM用户身份进入个人信息页面,确认是否已配置AccessKey ID和AccessKey Secret。如果未配置,单击修改AccessKey信息,输入AccessKey IDAccessKey Secret

如何授予用户操作表的权限?

需要由项目所有者或具备Super_Administrator、Admin角色的用户执行授权操作。您可以通过ACL授权方式(grant)为用户授予表的相关操作权限。命令示例如下。

grant Update on table project_name to ram$bob@aliyun.com:Allen;

更多授权信息,请参见MaxCompute权限

如何为RAM用户授权?

需要由阿里云账号或具备Super_Administrator、Admin角色的用户执行授权操作。更多授权信息,请参见MaxCompute权限

权限管理中的客体(Object)和操作(Action)是什么?

MaxCompute授权涉及到三个要素:

  • 主体(Subject):被授权的用户或角色。

  • 客体(Object):为用户或角色授予的目标对象,例如项目(Project)、表(Table)、函数(Function)、资源(Resource)及实例(Instance)。

  • 操作(Action):为用户或角色授予的可以对目标对象执行的操作。例如读、写、查表。

更多信息,请参见ACL权限控制

RAM用户如何访问其他阿里云账号创建的项目?

假设现有两个阿里云账号A和B,A账号下有一个RAM用户账号C(ram_user_1),账号C需要访问账号B创建的MaxCompute项目。

账号B需要将账号A加入到账号B创建的项目中,同时账号B为账号A授予MaxCompute Super_Administrator角色。然后用账号A登录账号B的项目,通过执行add user ram$A:ram_user_1;命令将账号C添加到账号B的项目中。

如何获取租户ID(tenant_id)

当您需要在租户级别指定被授权的资源范围时,权限策略中可以指定租户,此时您需要获取租户ID,获取方法如下:

  1. 登录MaxCompute控制台,在左上角选择地域。

  2. 在左侧导航栏选择租户管理 > 租户属性

  3. 租户管理页面获取对应账号的租户ID

为用户授权报错:“FAILED:Invalid account Name xxxxxx”,如何解决?

  • 问题现象

    为用户授权时,返回如下报错。

    FAILED:Invalid account Name xxxxxx
  • 产生原因

    授权语句中的用户名无效。

  • 解决措施

    建议您确认用户名是否正确。可以通过执行list users;命令获取当前项目的用户列表,然后授权时直接复制用户列表中的用户名,避免手动输入拼写错误,导致用户名无效。

为用户授权报错:“FAILED: lack of account provider, principalName xxxxxx”,如何解决?

  • 问题现象

    为用户授权时,返回如下报错。

    FAILED: lack of account provider, principalName xxxxxx
  • 产生原因

    授权语句中的用户名无效或当前项目支持的账号系统不支持RAM。

  • 解决措施

    建议您登录MaxCompute客户端,执行list accountproviders;命令查看MaxCompute项目空间支持的账号系统是否支持RAM。如果返回结果没有RAM,执行add accountprovider ram;命令,增加对RAM账号体系的支持,并再次执行list accountproviders;命令查看MaxCompute项目空间支持的账号系统已增加RAM。若确认项目支持RAM,仍然报错,则需要确认用户名是否正确。可以通过执行list users;命令获取当前项目的用户列表,然后授权时直接复制用户列表中的用户名,避免手动输入拼写错误,导致用户名无效。

MaxCompute中有视图(View)查询权限,为什么执行查询时报错其他用户无权限而无法查询?

  • 问题现象

    MaxCompute中视图(ViewA)引用数据表B,用户A有ViewA的查询权限,执行查询ViewA时报错用户B(视图Owner)无数据表B的查询权限。

  • 产生原因

    当视图Owner(View Owner)缺失视图引用表的SELECT权限时,视图不可用。一般场景为视图Owner变更后,没有及时对新的Owner授予视图引用表的SELECT权限;或视图引用表的Owner撤销了视图Owner对引用表的SELECT权限。因此即使用户A有ViewA的查询权限,也无法进行视图的查询。

  • 解决措施

    建议您检查视图Owner(View Owner)是否丢失了视图引用表的SELECT权限,命令如下。

    show grants for <user_name>;  -- user_name为视图Owner的用户名称

    若确认丢失,需要给View Owner重新添加视图引用表的SELECT权限,视图方可使用。

执行作业报错:You have NO privilege to do the restricted operation on xxx Access Mode is AllDenied如何解决?

  • 产生原因

    对应的项目为禁用状态。

  • 解决措施

    • 检查是否账号欠费或者是项目关联默认计算Quota为包年包月Quota而对应包年包月订单到期了。欠费或到期的话您充值、续费成功后会自动恢复为正常状态,恢复速度与您订单量、项目量相关,时间为2~30分钟不等。

    • 非欠费/到期,则应该是手动禁用了,可以直接到MaxCompute控制台的项目管理页面恢复项目,详情请参见变更项目状态

  • 本页导读 (1)
文档反馈