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

如何为自定义角色授予存储过程体查看权限且无需授予sysadmin权限

存储过程可见性权限配置方案

默认情况下,只有存储过程的所有者角色、ACCOUNTADMIN等高权限角色才有权限查看非自身创建的存储过程定义,仅授予USAGE权限仅支持角色执行存储过程,不包含查看存储过程主体的权限。你可以通过以下两种最小权限方案解决问题,无需授予SYSADMIN权限:

方案1:指定存储过程粒度授权(最小权限推荐)

仅开放单个目标存储过程的定义查看权限给New_role,适合权限管控要求严格的场景。
使用存储过程的所有者角色(此处为SYSADMIN)执行以下授权语句:

GRANT VIEW DEFINITION ON PROCEDURE <你的存储过程名>(<参数类型列表>) TO ROLE New_role;

注意:存储过程名称后必须附带参数类型列表,Snowflake支持同名不同参的存储过程,需要通过参数列表唯一指定目标对象。

授权完成后,持有New_role的用户即可正常执行GET_DDL或DESCRIBE PROCEDURE查看存储过程主体:

-- 验证方式1
SELECT GET_DDL('PROCEDURE', '<你的存储过程名>(<参数类型列表>)');

-- 验证方式2
DESCRIBE PROCEDURE <你的存储过程名>(<参数类型列表>);

方案2:Schema粒度授权

如果需要New_role可查看指定Schema下所有存储过程(以及其他对象)的定义,可直接授予Schema级别的VIEW DEFINITION权限,无需为单个存储过程重复授权:

GRANT VIEW DEFINITION ON SCHEMA <数据库名>.<Schema名> TO ROLE New_role;

该权限会自动覆盖对应Schema下已存在、以及后续新建的所有存储过程、函数、表等对象的定义查看权限,适合权限管控粒度较松的场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 19:48:05