Snowflake-授予模式访问权限时使用db变量

问题描述 投票:0回答:1

我正在尝试将一些可重复使用的脚本放在一起,以跨多个环境(prod / ppt / dev)创建我的数据库,更不用说跨企业重复使用了。当遇到变量引用我的仓库时,我遇到了尝试授予特定模式访问权限的障碍。它似乎无法解析该变量,并告诉我该模式不存在。

所以我正在使用类似于以下内容的东西:

set dbname = 'mydb';

set role = 'myrole';

use role SECURITYADMIN;

use database identifier($dbname);

grant select on future tables in schema myschema to role identifier($role);

我也尝试过:

grant select on future tables in schema identifier($dbname).myschema to role identifier($role);

但是总是得到相同的'找不到对象'错误。

我可以将其硬编码为:

grant select on future tables in schema mydb.myschema to role identifier($role);

并且可以很好地工作,但是如果我必须对数据库名称进行硬编码,那将失去具有可重用脚本的意义(奇怪的是,这种模式在硬编码的环境中将是静态的,])

这是一个限制,还是我做错了什么?

非常感谢。

我正在尝试将一些可重复使用的脚本放在一起,以跨多个环境(prod / ppt / dev)创建我的数据库,更不用说跨企业重复使用了。我遇到了尝试授予...的障碍...

variables schema snowflake-cloud-data-platform grant
1个回答
0
投票

以下对我有用。我有一个名为test_db的数据库,该数据库具有称为public的架构。谁是您的myschema模式的所有者?

© www.soinside.com 2019 - 2024. All rights reserved.