【问题标题】:Snowflake stored procedure permission question雪花存储过程权限问题
【发布时间】:2021-02-13 07:45:15
【问题描述】:

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

我使用 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

我错过了什么???

【问题讨论】:

    标签: snowflake-cloud-data-platform


    【解决方案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;
    

    【讨论】:

    • 哦,有趣...我只是假设 public 是... public!我会试试谢谢
    • 也适用于我。谢谢:D
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-11-12
    • 1970-01-01
    • 2021-11-11
    • 1970-01-01
    • 2020-03-16
    • 2011-04-02
    • 2021-10-01
    相关资源
    最近更新 更多