You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Trino/Presto中查询指定用户被授予的所有角色

Trino/Presto 中查询用户已授予角色的等价写法

Hive 中查询指定用户全部被授予角色的语句为show role grant user <username>;,Trino/Presto 没有完全同名的语法,根据查询场景可以用以下方式实现:

  • 查询当前登录用户自身的已授予角色
    直接使用内置的SHOW命令即可,默认返回当前catalog下的角色授权:
    -- 查询当前catalog下当前用户的角色
    SHOW ROLE GRANTS;
    
    -- 查询指定catalog(比如hive catalog)下当前用户的角色
    SHOW ROLE GRANTS FROM hive;
    
  • 查询任意指定用户的已授予角色(和Hive原语句功能完全等价)
    直接查询系统元数据表即可,该方式适配Trino 353及以上正式版本、主流Presto发行版:
    SELECT
      role_name,
      grantee,
      grantor,
      is_admin_option
    FROM system.metadata.role_authorization_descriptors
    WHERE grantee = '<待查询的用户名>'
      -- 若只需要查特定catalog下的角色授权,取消下面注释并指定catalog名
      -- AND catalog_name = 'hive';
    
    返回字段含义:
    • role_name:授予用户的角色名称
    • grantee:被授权的主体(用户/角色)
    • grantor:执行该授权操作的主体
    • is_admin_option:标识当前用户是否拥有该角色的转授权限

注意:查询系统元数据表需要账号拥有system.metadata的访问权限,普通账号无权限时需要管理员先授予对应权限。

内容的提问来源于stack exchange,提问作者Dyno Fu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 21:24:29