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

如何授予角色查看Schema中存储过程权限且禁止调用

Snowflake:让角色查看存储过程元数据但禁止调用的权限配置

问题背景

需为指定角色配置权限,使其能查看某Schema下的存储过程元数据,但完全无法调用这些存储过程。尝试使用MONITOR权限时,执行DESCRIBE SCHEMA仅能返回视图和表,无法获取存储过程信息(参考Snowflake官方《通用DESCRIBE命令》《DESCRIBE SCHEMA命令》文档)。

解决方案

1. 授予REFERENCE_USAGE核心权限

该权限仅允许角色访问存储过程的元数据,不会赋予调用权限,完全匹配需求:

  • 授权单个存储过程:
GRANT REFERENCE_USAGE ON PROCEDURE <schema名>.<存储过程名>([参数类型列表]) TO ROLE <角色名>;
  • 授权Schema下所有现有存储过程:
GRANT REFERENCE_USAGE ON ALL PROCEDURES IN SCHEMA <schema名> TO ROLE <角色名>;
  • 授权Schema下未来创建的存储过程:
GRANT REFERENCE_USAGE ON FUTURE PROCEDURES IN SCHEMA <schema名> TO ROLE <角色名>;

2. 查看存储过程元数据的方式

权限配置完成后,可通过两种方式查看:

  • 查看单个存储过程详情:
DESCRIBE PROCEDURE <schema名>.<存储过程名>([参数类型列表]);
  • 批量查询Schema下所有存储过程:
SELECT ROUTINE_NAME, ROUTINE_DEFINITION, DATA_TYPE 
FROM INFORMATION_SCHEMA.PROCEDURES 
WHERE ROUTINE_SCHEMA = '<schema名>';

注意事项

  • 禁止授予EXECUTE或USAGE权限(针对存储过程或Schema),这类权限会让角色获得调用存储过程的能力。
  • MONITOR权限仅适用于Schema/数据库级别的对象监控,无法覆盖存储过程的元数据访问,不适用当前需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 14:18:17