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

是否可禁用Snowflake用户查看其他用户或角色的所有元数据?

针对Snowflake多用户组隔离需求的实现方案

你提到的两项配置均可通过Snowflake原生的权限控制和可见性参数实现,无需使用organisations功能,具体操作如下:

1. 禁止普通用户执行SHOW ROLES、隐藏Snowsight UI的ROLES标签页

  • 首先撤销PUBLIC角色默认的MONITOR ROLES全局权限,仅给管理员角色单独授予该权限:
    REVOKE MONITOR ROLES ON ACCOUNT FROM ROLE PUBLIC;
    GRANT MONITOR ROLES ON ACCOUNT TO ROLE ACCOUNTADMIN; -- 按需给其他管理员角色授权
    
  • 若需要保留部分角色的可见性,可通过角色可见性参数控制:将不希望被普通用户看到的角色设置为不可见,未被授予该角色的用户在SHOW ROLES结果、Snowsight角色列表中都无法看到对应角色:
    ALTER ROLE <非公开角色名> SET IS_VISIBLE = FALSE;
    
  • 完成上述配置后,普通用户没有权限执行SHOW ROLES命令,Snowsight的ROLES标签页会自动隐藏,或打开后无可见内容。

2. 禁止普通用户在查询历史页面查看完整用户列表

  • 先撤销PUBLIC角色默认的全局监控类权限,仅保留用户查看自身查询历史的权限:
    REVOKE MONITOR EXECUTION ON ACCOUNT FROM ROLE PUBLIC;
    REVOKE MONITOR USAGE ON ACCOUNT FROM ROLE PUBLIC;
    
  • 开启账户级用户可见性强制开关,默认所有用户仅对拥有对应管理权限的账号、以及同权限组的用户可见,也可单独调整指定用户的可见性:
    ALTER ACCOUNT SET ENFORCE_USER_VISIBILITY = TRUE;
    -- 单独设置用户不可见的命令:ALTER USER <目标用户名> SET IS_VISIBLE = FALSE;
    
  • 配置完成后,普通用户的查询历史页面用户下拉列表仅会显示自己的账号,无法查看其他用户信息。

注意事项

  • 所有权限调整建议先在测试环境验证,避免影响管理员或现有业务的正常使用
  • 建议梳理所有自定义角色的权限边界,不同用户组的角色、用户均设置为对其他组不可见,可完全实现跨组用户无感知的隔离需求
  • 目前无公开的绕过该配置的安全漏洞,配置正确的前提下不会出现用户、角色信息泄露的风险

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 19:57:02