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

如何查询Snowflake中拥有指定Schema USAGE权限的所有角色

查询Snowflake中拥有指定Schema USAGE权限的角色

可以通过Snowflake的系统视图来查询拥有DB1.Schema的USAGE权限的角色,以下是两种常用方法:

方法一:使用ACCOUNT_USAGE视图(账户级权限查询)

如果您拥有ACCOUNT_USAGE的访问权限,这个视图可以查询整个账户范围内的权限分配情况:

SELECT 
    GRANTEE_NAME AS ROLE_NAME,
    PRIVILEGE,
    GRANTED_ON,
    OBJECT_NAME AS SCHEMA_NAME,
    GRANTOR_NAME
FROM 
    SNOWFLAKE.ACCOUNT_USAGE.GRANTS_TO_ROLES
WHERE 
    PRIVILEGE = 'USAGE'
    AND GRANTED_ON = 'SCHEMA'
    AND DATABASE_NAME = 'DB1'
    AND OBJECT_NAME = 'Schema' -- 如果Schema名称区分大小写,改为 '"Schema"'
ORDER BY 
    ROLE_NAME;

该查询会返回所有被授予目标Schema USAGE权限的角色,包含角色名称、权限类型、对象类型、Schema名称以及授权者信息。

方法二:使用INFORMATION_SCHEMA(数据库级权限查询)

如果您没有ACCOUNT_USAGE权限,可以切换到目标数据库后,通过当前数据库的INFORMATION_SCHEMA查询:

USE DATABASE DB1;

SELECT 
    GRANTEE AS ROLE_NAME,
    PRIVILEGE_TYPE AS PRIVILEGE,
    TABLE_CATALOG AS DATABASE_NAME,
    TABLE_SCHEMA AS SCHEMA_NAME
FROM 
    INFORMATION_SCHEMA.OBJECT_PRIVILEGES
WHERE 
    PRIVILEGE_TYPE = 'USAGE'
    AND OBJECT_TYPE = 'SCHEMA'
    AND TABLE_SCHEMA = 'Schema' -- 区分大小写时改为 '"Schema"'
ORDER BY 
    ROLE_NAME;

这个查询仅覆盖当前数据库内的权限分配,返回结果包含角色名、权限类型、所属数据库和Schema名称。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 22:45:38