开发者社区 问答 正文

MaxCompute准备工作:用户授权及权限查看



添加用户 后,项目空间 Owner 或者项目空间管理员需要给该用户进行授权,只有用户获得权限后,才能执行操作。所谓授权,即授予用户对 MaxCompute 中的表,任务,资源等客体的某种操作权限,包括:读、写、查看等,详情请参见: 项目成员管理,以了解 MaxCompute 角色对应的大数据开发套件中的成员角色及其权限特征。


如果您只是 MaxCompute 的普通用户,请确认已经获取足够权限,快速浏览本章节即可 。

MaxCompute 提供了 ACL 授权,跨项目空间数据分享及 项目空间数据保护等多种策略。本文只简单介绍使用最多的 ACL 授权。

ACL 授权


ACL 授权中,MaxCompute 的客体包括: ProjectTableFunctionResourceInstanceTask。每种客体具有不同的操作权限,详细介绍请参见: ACL 授权
授权的命令为:
  1. GRANT privileges ON project_object TO project_subject
  2. REVOKE privileges ON project_object FROM project_subject
  3. privileges ::= action_item1, action_item2, ...
  4. project_object ::= PROJECT project_name | TABLE schema_name |
  5.                    INSTANCE inst_name | FUNCTION func_name |
  6.                    RESOURCE res_name | JOB job_name
  7. project_subject ::= USER full_username | ROLE role_name

备注:上述授权命令中有关角色(ROLE)的相关部分用户可以暂时不予关注,待后续章节介绍 。user full_username,若为阿里云主帐号,写法为 ALIYUN$xxxx,若为RAM子帐号,写法为 RAM$主帐号:子帐号。

示例如下:
假设用户云账号为 bob@aliyun.com 已经被添加到某个项目空间($user_project_name),需要给它授予建表、获取表信息和执行的权限。项目空间管理员(admin 角色)或者该项目空间 owner 在客户端可以执行如下命令:
  1. grant CreateTable on PROJECT $user_project_name to USER ALIYUN$bob@aliyun.com;
  2.   -- 向 bob@aliyun.com 授予名为 “$user_project_name” 的 project 的 CreateTable(创建表)权限
  3. grant Describe on Table $user_table_name to USER ALIYUN$bob@aliyun.com;
  4.   -- 向 bob@aliyun.com 授予名为 “$user_table_name” 的 Table 的 Describe(获取表信息)权限
  5. grant Execute on Function $user_function_name to USER ALIYUN$bob@aliyun.com;
  6.   -- 向 bob@aliyun.com 授予名为 "$user_function_name" 的 Function 的 Execute(执行)权限


查看权限


查看权限的命令为:  
  1. show grants for $user_name;

示例如下:
假设需要查看用户云账号 bob@aliyun.com 在当前项目空间的权限,需要在客户端可以执行如下命令:
  1. show grants for ALIYUN$bob@aliyun.com

查看RAM子帐号权限:
  1. show grants for RAM$主帐号:子帐号;

备注:关于查看权限的详细介绍请参见: 查看权限

展开
收起
行者武松 2017-10-23 15:14:04 2318 分享 版权
阿里云 AI 助理回答

在阿里云MaxCompute中,访问控制列表(ACL)授权是一种基本且广泛使用的权限管理方式,它允许项目空间的Owner或管理员为用户分配对特定资源的操作权限。您已经概述了如何使用ACL进行授权和查看权限的过程,这里我将补充一些与阿里云MaxCompute及大数据开发套件DataWorks相关的额外信息和最佳实践。

关键点回顾:

  1. 主体与客体:在ACL授权中,主体可以是用户(USER)或角色(ROLE),而客体包括Project、Table、Function等资源类型。每个客体对应不同的操作权限,如读(Read)、写(Write)、查看(Describe)等。

  2. 授权命令格式

    • 授予权限:GRANT privileges ON project_object TO project_subject;
    • 撤销权限:REVOKE privileges ON project_object FROM project_subject;
  3. 示例:通过具体命令展示了如何给用户bob@aliyun.com授予创建表、获取表信息和执行函数的权限。

  4. 查看权限:使用show grants for $user_name;来查询指定用户的权限状态。

阿里云产品集成与优化建议:

  • DataWorks集成:如果您正在使用阿里云的大数据开发套件DataWorks,可以在其界面中更直观地进行用户管理与权限分配。DataWorks提供了图形化的权限配置界面,使得项目空间的管理和权限设置更加便捷,无需直接编写SQL命令。

  • RAM子账号管理:对于使用阿里云Resource Access Management (RAM)服务创建的子账号,确保遵循最小权限原则,仅授予完成任务所需的最小必要权限。这有助于提高安全性并简化权限管理。

  • 跨项目空间数据分享:如果需要在不同项目空间之间共享数据,可以利用MaxCompute的跨项目空间数据分享功能,结合Policy授权机制,实现更灵活的数据协作,同时保持数据安全。

  • 审计与合规:利用MaxCompute的日志审计功能,监控所有授权和权限变更操作,确保符合组织的安全策略和法规要求。

  • 自动化与脚本:对于大规模或频繁的权限调整,考虑使用MaxCompute客户端脚本或与阿里云CLI集成,自动化执行授权和权限检查流程,提升效率。

综上所述,MaxCompute的ACL授权机制为数据管理和权限控制提供了坚实的基础。结合阿里云其他服务和工具,如DataWorks和RAM,可以进一步增强权限管理的灵活性、安全性和便利性。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答