尝试从一个数据库共享2个架构到SNOWFLAKE READER帐户时,我遇到奇怪的行为。
假设生产者数据库上的两个模式都正确共享,那么创建数据库和在READER ACCOUNT上共享的命令将类似于:
CREATE DATABASE myDB_A from share producerAccount.Producer_SHARE_Schema_A;
CREATE DATABASE myDB_B from share producerAccount.Producer_SHARE_Schema_B;
哪里
发生的事情是myDB_A将具有Schema_A,并且在运行第二个命令时,myDB_A也将选择Schema_B。
理想情况下,我们需要一个命令,该命令允许我们使用ALTER方法向数据库添加第二个架构:
CREATE DATABASE myDB_A from share producerAccount.Producer_SHARE_Schema_A;
**ALTER DATABASE myDB_B ADD share producerAccount.Producer_SHARE_Schema_B**;
最后一个问题...是否有标准化的方法将其他架构添加到目标READER ACCOUNT中的共享数据库?
谢谢!
答案 0 :(得分:1)
我想我能够回答我的问题...与其尝试将第二个架构添加到在消费者(READER ACCOUNT)端创建的共享,不如在PRODUCER端创建共享,最好包括两种模式:
grant usage on database myDB to share myShare;
grant usage on schema myDB.Schema_A to share myShare;
grant usage on schema myDB.Schema_B to share myShare;
然后在消费者方面,我们只需要担心创建数据库的单一共享:
CREATE DATABASE myDB from share producerAccount.myshare;
那解决了问题。事后看来,这是显而易见的。将所有内容放到生产者端,并在READER ACCOUNT上保持简单。
Du ...