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

Snowflake如何获取所有用户及其已分配角色的列表?

获取Snowflake所有用户及其已分配角色的完整列表

方法1:使用Account Usage视图(全账户范围,有延迟)

Account Usage视图覆盖全账户元数据,适合批量查询,但数据存在1-2小时的延迟。执行以下SQL:

SELECT 
    u.name AS username,
    r.name AS role_name
FROM 
    snowflake.account_usage.users u
JOIN 
    snowflake.account_usage.grants_to_users gtu 
    ON u.id = gtu.grantee_id
JOIN 
    snowflake.account_usage.roles r 
    ON gtu.role_id = r.id
ORDER BY 
    u.name, r.name;

方法2:使用Information Schema(实时数据)

如果需要实时获取角色分配信息,可查询Information Schema的role_grants视图:

SELECT 
    grantee_name AS username,
    granted_role_name AS role_name
FROM 
    information_schema.role_grants
WHERE 
    grantee_type = 'USER'
ORDER BY 
    grantee_name, granted_role_name;

注:该视图默认返回当前数据库范围内的权限,若要查询全账户,需切换到SNOWFLAKE数据库下执行。

方法3:使用SHOW命令结合RESULT_SCAN

通过SHOW GRANTS命令直接获取权限,再用RESULT_SCAN解析结果:

SHOW GRANTS TO ALL USERS;
SELECT "granted_to" AS username, "role" AS role_name 
FROM TABLE(RESULT_SCAN(LAST_QUERY_ID()));

权限要求

执行以上查询需要具备以下角色之一:

  • ACCOUNTADMIN(最高权限)
  • SECURITYADMIN(管理权限)
  • USERADMIN(用户管理权限)
  • 被授予MONITOR USAGE权限的自定义角色

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 18:42:35