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

Snowflake集成Azure Blob Storage遇401认证错误,请求协助解决

Snowflake Azure外部Stage 401 InvalidAuthenticationInfo错误排查方案

问题概述

在Snowflake中创建存储集成并关联Azure Blob Storage外部Stage后,执行list @mydb.extn_stages.stage_json;时返回401错误:

Error: "Failure using stage area. Cause: [Server failed to authenticate the request. Please refer to the information in the www-authenticate header. (Status Code: 401; Error Code: InvalidAuthenticationInfo)]"

已检查URL、租户ID、角色权限及Azure相关配置,但问题未解决,以下是针对性排查步骤:

排查步骤

1. 确认Snowflake服务主体的Azure权限配置

创建存储集成后,Snowflake会生成专属Azure服务主体,需确保该主体拥有Blob存储的访问权限:

  • 执行以下命令获取Snowflake服务主体信息:
DESC STORAGE INTEGRATION azsf_mydb_aug23;
  • 从结果中提取AZURE_MULTI_TENANT_APP_NAME(Snowflake服务主体名称)和AZURE_CONSENT_URL。
  • 登录Azure门户,找到目标Blob存储账户,进入IAM > 添加角色分配:
    • 角色选择存储Blob数据参与者(或满足需求的最小权限角色)
    • 成员类型选择用户、组或服务主体,搜索并添加上述AZURE_MULTI_TENANT_APP_NAME对应的主体
    • 完成角色分配后等待5-10分钟让权限生效

2. 检查Azure存储账户的网络访问规则

若Blob存储账户设置了IP白名单或虚拟网络限制,Snowflake的IP可能被拦截:

  • 进入Azure存储账户的网络设置,查看“允许访问的网络”:
    • 若设置为“选定的网络”,需添加Snowflake所在区域的IP段
    • 可临时切换为“所有网络”进行测试,若问题解决则说明是网络规则限制

3. 核对Stage URL与存储集成允许路径的一致性

Azure Blob的URL区分大小写,需确保:

  • Stage的url参数与存储集成的STORAGE_ALLOWED_LOCATIONS完全一致(包括容器名、路径的大小写、斜杠)
  • 示例中需确认azure://sampleblobstorage123456.blob.core.windows.net/sampleblob在两处配置完全相同,无多余或缺失的斜杠

4. 验证存储集成的启用状态与租户ID

再次确认存储集成的配置正确性:

DESC STORAGE INTEGRATION azsf_mydb_aug23;
  • 检查ENABLED字段值为TRUE
  • 检查AZURE_TENANT_ID与Azure租户ID完全匹配,无拼写错误

5. 确认Snowflake角色的权限

执行LIST命令的角色需拥有以下权限:

-- 授予存储集成的使用权限
GRANT USAGE ON STORAGE INTEGRATION azsf_mydb_aug23 TO ROLE <你的执行角色>;
-- 授予Stage的使用权限
GRANT USAGE ON STAGE mydb.extn_stages.stage_json TO ROLE <你的执行角色>;

6. 验证Blob容器的存在性

确认Azure Blob存储中sampleblob容器已创建,且路径正确(若路径不存在,也可能触发权限类错误)

测试验证

完成上述检查后,重新执行list @mydb.extn_stages.stage_json;命令,若仍报错,可尝试重新创建存储集成和Stage(确保配置完全一致)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 03:46:27