通过MaxCompute的安全模型进行权限控制,并不会影响成员在DataWorks界面上的操作。但是通过DataWorks的用户角色分配,则有可能影响成员的MaxCompute资源权限。本文为您介绍这两个产品之间的权限关系。
项目关系
账号认证
云账号在DataWorks项目中只能是项目空间所有者(Owner)。在MaxCompute中既可以为项目空间所有者(Project Owner)也可以为普通用户。当通过DataWorks项目成员管理功能添加成员时只能添加当前项目主账号对应的RAM子账号。而MaxCompute可以通过
add user xxx;
命令添加其它云账号。
成员角色与权限关系
DataWorks为了提供项目成员在数据开发过程中需要的MaxCompute相关资源权限,绑定了一些MaxCompute角色。DataWorks项目有固定的成员角色,同时在对应的MaxCompute项目上创建了对应的角色。此外,MaxCompute项目本身除项目空间所有者之外,还包含有一个Super_Administrator、Admin角色。具体权限对应如下表所示。
MaxCompute角色 | MaxCompute数据权限 | DataWorks成员角色 | DataWorks平台权限特征 |
---|---|---|---|
Project Owner | MaxCompute项目空间的所有者,拥有该项目空间的所有权限。 | 无 | 无 |
Super_Administrator | MaxCompute项目空间的超级管理员,拥有项目空间的管理类权限以及项目空间内所有类型资源的全部权限。 | 无 | 无 |
Admin |
每一个项目空间在创建时,会自动创建一个Admin角色,并且为该角色授予确定的权限。即可以访问项目空间内的所有对象、对用户或角色进行管理、对用户或角色进行授权。 与项目空间的所有者相比,Admin角色不能将Admin权限指派给用户,不能设定项目空间的安全配置,不能修改项目空间的鉴权模型,Admin角色所对应的权限不能被修改。 项目空间的所有者可以将Admin角色赋权给一个用户,让该用户代理安全管理。 |
无 | 无 |
Role_Project_Admin | 当前项目空间下project/table/fuction/resource/instance/job/package的所有权限。 | 项目管理员 | 指项目空间的管理者。可以对该项目空间的基本属性、数据源、当前项目空间计算引擎配置和项目成员等进行管理,并为项目成员赋予项目管理员、开发、运维、部署、访客角色。 |
Role_Project_Dev | 当前项目空间下project/fuction/resource/instance/job/package/table的所有权限。 | 开发 | 开发角色的用户能够创建工作流、脚本文件、资源和UDF以及新建和删除表,同时可以创建发布包,但不能执行发布操作。 |
Role_Project_Pe | 当前项目空间下project/fuction/resource/instance/job的所有权限,拥有package的read权限和table 的read/describe权限。 | 运维 | 运维角色的用户由项目管理员分配运维权限,拥有发布及线上运维的操作权限,没有数据开发的操作权限。 |
Role_Project_Deploy | 默认无权限。 | 部署 | 部署角色与运维角色相似,但是它没有线上运维的操作权限。 |
Role_Project_Guest | 默认无权限。 | 访客 | 访客角色的用户只具备查看权限,没有权限进行编辑工作流和代码等操作。 |
Role_Project_Security | 默认无权限。 | 安全管理员 | 安全管理员仅在数据保护伞模块中使用,用于敏感规则配置、数据风险审计等。 |
说明 由上表可知,DataWorks角色对应的MaxCompute权限是固定的。一旦某个用户通过DataWorks角色获取MaxCompute相关角色权限后,又通过命令行方式获得了其他的MaxCompute权限,会使该用户在MaxCompute上的权限与在DataWorks上查询到的不一致。
用户和权限关系图
下图为用户和权限的对应关系。

在标准模式下,一个DataWorks工作空间绑定两个MaxCompute项目空间,即一个开发项目空间和一个生产项目空间。 DataWorks工作空间的其他成员,根据成员角色拥有MaxCompute开发项目空间对应的角色权限,但没有MaxCompute生产项目空间的权限。
MaxCompute任务需要通过发布流程发布到生产项目后,以Owner账号提交至MaxCompute执行。
