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

Snowflake中如何将从市场获取的共享数据库共享给读者账户?

Snowflake共享市场数据库给Reader Account的方法

你从Snowflake Marketplace获取的共享数据库(比如COVID19_EPIDEMIOLOGICAL_DATA)属于引入的共享对象,这类数据库本身是只读的,且无法直接重新共享给其他账户(包括你自己的Reader Account),所以你执行的grant usage on database COVID19_EPIDEMIOLOGICAL_DATA to share reader_acct_share;确实无效。

你的思路方向是对的,但有更高效的实现方式,无需手动同步:

  • 步骤1:创建零拷贝克隆数据库
    直接用Snowflake的零拷贝克隆功能,基于共享数据库创建可操作的克隆库,这个操作不会额外占用存储(除非后续修改数据),还能完整保留原库的结构和数据:

    CREATE DATABASE COVID19_CLONED CLONE COVID19_EPIDEMIOLOGICAL_DATA;
    
  • 步骤2:设置自动刷新(可选)
    如果原Marketplace数据库会定期更新,给克隆库开启自动刷新,就能确保两者保持同步,不用手动写调度流程:

    -- 开启自动刷新模式
    ALTER DATABASE COVID19_CLONED SET REFRESH_MODE = AUTO;
    -- 自定义刷新调度(示例为每天UTC零点刷新)
    ALTER DATABASE COVID19_CLONED SET REFRESH_SCHEDULE = 'USING CRON 0 0 * * * UTC';
    

    若不需要自动同步,也可以手动执行ALTER DATABASE COVID19_CLONED REFRESH;来更新数据。

  • 步骤3:共享克隆库给Reader Account
    现在可以正常将克隆库共享给你的Reader Account:

    1. 创建或使用已有的共享对象:
      CREATE SHARE reader_acct_share;
      
    2. 授予克隆库的相关权限:
      GRANT USAGE ON DATABASE COVID19_CLONED TO SHARE reader_acct_share;
      GRANT USAGE ON SCHEMA COVID19_CLONED.PUBLIC TO SHARE reader_acct_share;
      GRANT SELECT ON ALL TABLES IN SCHEMA COVID19_CLONED.PUBLIC TO SHARE reader_acct_share;
      GRANT SELECT ON ALL VIEWS IN SCHEMA COVID19_CLONED.PUBLIC TO SHARE reader_acct_share;
      
    3. 将Reader Account添加到共享中:
      ALTER SHARE reader_acct_share ADD ACCOUNT = <你的Reader Account ID>;
      

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 09:02:55