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

Snowflake共享账户无法访问共享对象问题排查

Snowflake共享创建后对方账户无法查看内容的排查方案

已执行操作概述

你已经完成了以下共享配置步骤且无报错:

  1. 创建共享并为其授予对象权限:
CREATE SHARE IF NOT EXISTS my_db_my_schema_my_table;
GRANT USAGE ON DATABASE my_db TO SHARE my_db_my_schema_my_table;
GRANT USAGE ON SCHEMA my_db.my_schema TO SHARE my_db_my_schema_my_table;
GRANT SELECT ON TABLE my_db.my_schema.my_table TO SHARE my_db_my_schema_my_table;
  1. 将目标账户添加至共享:
ALTER SHARE my_db_my_schema_my_table ADD ACCOUNTS=AB60942;

共享详情显示该账户已在Full Accounts列表中,且当前执行角色具备对应的共享创建、权限授予权限。

需补充的配置操作(无需使用accountadmin角色)

以下是可能遗漏的关键步骤,按优先级排查:

  • 对方账户需手动接受共享并映射为本地数据库
    共享创建后,对方账户无法自动看到内容,必须由对方使用具备IMPORT SHARE权限的角色执行以下操作:

    -- 替换<你的账户全称>为你的Snowflake账户标识符(如xy12345.us-west-2)
    CREATE DATABASE shared_db FROM SHARE <你的账户全称>.my_db_my_schema_my_table;
    
    -- 为对方内部的业务角色授予访问权限(按需调整角色名)
    GRANT USAGE ON DATABASE shared_db TO ROLE target_business_role;
    GRANT USAGE ON SCHEMA shared_db.my_schema TO ROLE target_business_role;
    GRANT SELECT ON TABLE shared_db.my_schema.my_table TO ROLE target_business_role;
    
  • 检查共享是否包含所有依赖对象
    如果共享的表依赖其他对象(如序列、自定义函数、视图关联的基础表等),这些对象未添加到共享会导致对方无法正常访问。可通过以下语句查看共享已授权的对象:

    SHOW GRANTS TO SHARE my_db_my_schema_my_table;
    

    若存在缺失的依赖,执行类似语句补充授权:

    -- 示例:添加序列权限
    GRANT USAGE ON SEQUENCE my_db.my_schema.my_seq TO SHARE my_db_my_schema_my_table;
    
  • 验证网络访问规则
    若你的账户配置了网络策略,需确保对方账户的IP范围被纳入允许列表;若使用VPC对等连接或Snowflake Private Link,需确认双方的网络配置已打通。此步骤可由对方账户管理员检查自身网络访问策略,或你这边确认共享的访问控制规则。

  • 排查行级/列级权限限制
    如果目标表配置了行级安全(RLS)或列级权限,需将这些权限策略也授权给共享:

    -- 示例:授予行级策略的使用权限
    GRANT USAGE ON ROW ACCESS POLICY my_db.my_schema.my_rls_policy TO SHARE my_db_my_schema_my_table;
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 05:45:31