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

Microsoft SQL Server 2017 Data Tools 15.9.2版SSIS通过ODBC驱动连接Snowflake后无法显示全部模式及表问题求助

解决SSIS 2017 Data Tools 15.9.2无法查看Snowflake全部模式/表的问题

我之前帮不少用户排查过这个问题,结合Snowflake官方文档和实际调试经验,整理了几个靠谱的解决思路,你可以逐一尝试:

1. 升级Snowflake ODBC驱动到最新兼容版本

SSIS 15.9.2对ODBC驱动的兼容性要求比旧版SSIS更高,旧驱动可能无法正确返回完整的元数据:

  • 卸载当前的Snowflake ODBC驱动,下载对应系统位数的最新稳定版驱动(注意SSIS设计器默认用32位驱动,部署时可能需要64位,建议两个都装)。
  • 重新配置ODBC数据源,测试连接确认正常后,再回到SSIS里刷新元数据试试。

2. 调整ODBC连接管理器的参数设置

打开Snowflake ODBC连接管理器的「All」标签页,修改几个关键参数:

  • 明确指定Database和Warehouse的值,避免连接时默认到权限不足的资源池。
  • 把USE_CACHED_METADATA设置为false,强制SSIS实时从Snowflake读取元数据,而不是依赖本地缓存。
  • 如果知道具体要访问的Schema,也可以手动指定Schema参数,先验证单个Schema的表是否能正常显示。

3. 修改SSIS设计器的元数据加载配置

有时候是SSIS设计器的加载限制导致部分元数据没显示:

  • 点击顶部菜单栏的「工具」→「选项」→「Business Intelligence Designers」→「Integration Services Designers」。
  • 找到元数据加载相关的设置,尝试增加超时时间(比如从默认的30秒改成60秒),避免网络延迟导致加载中断。
  • 检查是否有「加载所有可用元数据」的选项,勾选它确保SSIS不会过滤掉任何Schema或表。

4. 手动通过SQL查询获取元数据

如果自动加载还是不行,可以绕过SSIS的元数据读取逻辑,直接用SQL查询获取:

  • 在Snowflake客户端执行以下SQL获取所有Schema:
    SELECT SCHEMA_NAME 
    FROM INFORMATION_SCHEMA.SCHEMATA 
    WHERE CATALOG_NAME = '你的数据库名称';
    
  • 获取指定Schema下的所有表:
    SELECT TABLE_NAME 
    FROM INFORMATION_SCHEMA.TABLES 
    WHERE TABLE_SCHEMA = '目标Schema名称' 
      AND TABLE_CATALOG = '你的数据库名称';
    
  • 在SSIS里用「执行SQL任务」运行这些查询,把结果存储到变量里,后续流程就可以基于这些变量来访问对应的表了。

5. 确认Snowflake用户的权限配置

有时候不是SSIS的问题,而是连接Snowflake的用户权限不足,导致看不到全部Schema/表:

  • 给用户对应的角色授予数据库使用权限:
    GRANT USAGE ON DATABASE 你的数据库名称 TO ROLE 你的角色名称;
    
  • 授予所有Schema的使用权限:
    GRANT USAGE ON ALL SCHEMAS IN DATABASE 你的数据库名称 TO ROLE 你的角色名称;
    
  • 如果需要访问表,还要授予查询权限:
    GRANT SELECT ON ALL TABLES IN SCHEMA 你的数据库名称.目标Schema名称 TO ROLE 你的角色名称;
    

(如果要让未来新增的对象也能被访问,把ALL替换成FUTURE)


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.29 18:27:31