雪花存储过程权限问题

时间:2020-10-30 20:22:11

标签: snowflake-cloud-data-platform

我正在努力为一个简单的存储过程授予执行权限

我使用ROLE SYSADMIN创建以下过程

CREATE OR REPLACE PROCEDURE PUBLIC.SOME_PROC()
RETURNS VARCHAR
LANGUAGE JAVASCRIPT
AS 
$$
  return "Hello";
$$
;

我通过调用对其进行测试

CALL PUBLIC.SOME_PROC();

我批准执行如下

GRANT USAGE ON PROCEDURE PUBLIC.SOME_PROC() TO ROLE UAT_OPERATIONS;

我要换角色

USE ROLE UAT_OPERATIONS;

我尝试再次调用

CALL PUBLIC.SOME_PROC();

然后出现以下错误

SQL错误[2141] [42601]:SQL编译错误:未知的用户定义 函数PUBLIC.SOME_PROC

我想念什么?

1 个答案:

答案 0 :(得分:1)

要解决相同的错误,我必须确保还为角色授予特权USAGE ON DATABASEUSAGE ON SCHEMA-否则在该角色中工作时会出现Unknown错误

GRANT USAGE ON DATABASE db TO ROLE UAT_OPERATIONS;
GRANT USAGE ON SCHEMA db.public TO ROLE UAT_OPERATIONS;
GRANT USAGE ON PROCEDURE db.PUBLIC.SOME_PROC() TO ROLE UAT_OPERATIONS;