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

查询指定用户的权限信息和绑定的角色信息

  • 命令格式