MaxCompute支持通过SQL语句查询用户、角色、对象等的权限信息。本文为您介绍SQL权限查询语法并提供示例供参考。
基于MaxCompute提供的授权方案为用户或角色授权后,您可以查询如下权限信息。
查询场景 | 查询操作 | 操作人角色 | 操作入口 |
---|---|---|---|
查询角色的权限信息 | 查询指定角色的权限及绑定的用户信息 | 项目的所有者(Project Owner)、具备Super_Administrator或Admin角色的用户 | |
查询用户的权限信息 | 查询当前用户的权限及绑定的角色信息 | ||
查询指定用户的权限信息和绑定的角色信息 | |||
查询对象的ACL授权信息 | 查询指定对象的ACL授权信息 | ||
查询Label授权信息 | 查询当前用户可访问的所有高敏感等级数据表 | ||
查询当前用户可访问的指定等级的高敏感数据表 | |||
查询指定用户可访问的高敏感等级数据表 | |||
查询指定用户可访问的指定等级的高敏感数据表 | |||
查询可以访问指定敏感数据表的用户 | |||
查询可以访问指定敏感数据表的指定等级的用户 | |||
查询指定用户在指定敏感数据表中的权限 | |||
查询指定表中所有列的敏感等级 | |||
查询Package授权信息 | 查询指定Package的授权信息 | ||
查询指定Package内资源的授权信息 | |||
查询指定Package内表的Label授权信息 |
查看用户权限或角色权限信息时,MaxCompute会在返回信息中使用如下标记字符:
- A:表示Allow,即允许的操作权限。
- D:表示Deny,即拒绝的操作权限。
- C:表示With Condition,即带条件的授权。
- G:表示With Grant Option,即可以对客体(Object)进行授权。
查询指定角色的权限及绑定的用户信息
- 命令格式
describe role <role_name>;
- 参数说明
参数名称 是否必填 说明 role_name 是 指定待查询权限的角色名称。 您可以通过MaxCompute客户端执行
list roles;
命令获取角色名称。 - 返回信息
查询结果会返回ACL、Policy、Download权限信息。
- 使用示例
假设Bob@aliyun.com为test_project_a的项目所有者,Worker为项目中的角色。命令示例如下。
describe role Worker;
[users] RAM$Bob@aliyun.com:Allen Authorization Type: ACL A projects/test_project_a: CreateTable | CreateResource | CreateInstance | CreateFunction | List A projects/test_project_a/tables/bank_data: Download Authorization Type: Policy A projects/test_project_a/tables/bak*: Download A projects/test_project_a/tables/sale_detail: Update A projects/test_project_a/tables/tb_*: Download | Drop A projects/test_project_a/tables/view_1: Drop
查询当前用户的权限及绑定的角色信息
- 命令格式
show grants;
- 返回信息
查询结果会返回如下信息:
- 项目所有者:账号信息、项目列表信息。
- 其他用户:绑定的角色信息、ACL、Policy及Download权限信息。
- 使用示例
假设Bob@aliyun.com为test_project_a的项目所有者,Allen为隶属于test_project_a的RAM用户,已经被添加到test_project_a中。
- 假设当前项目的访问者为Bob,执行
show grants;
命令,返回结果如下。[ALIYUN$Bob@aliyun.com] projects/test_project_a: Project Owner
- 假设当前项目的访问者为Allen,执行
show grants;
命令,返回结果如下。[roles] worker Authorization Type: ACL [user/RAM$Bob@aliyun.com:Allen] A projects/test_project_a: CreateTable | CreateResource | CreateInstance | CreateFunction | List A projects/test_project_a/packages/project_test_b.datashare: Read Authorization Type: Policy [role/worker] A projects/test_project_a/tables/tb_*: Drop | Download
- 假设当前项目的访问者为Bob,执行
查询指定用户的权限信息和绑定的角色信息
- 命令格式