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

SQL 2022 VM使用Polybase CETAS写入Azure Blob存储遇认证及防火墙问题

解决方案

一、使用托管身份实现Polybase写入Azure Blob

CETAS当前确实不支持通过Azure AD身份验证写入Azure存储,你可以改用INSERT INTO外部表的方式替代CETAS,具体步骤如下:

  • 给SQL Server VM的托管身份(系统分配或用户分配)授予Azure Blob存储账户的存储Blob数据参与者角色,确保身份拥有写入权限。
  • 创建外部数据源时指定托管身份认证:
CREATE EXTERNAL DATA SOURCE BlobStorageDS
WITH (
    LOCATION = 'abs://<容器名>@<存储账户名>.blob.core.windows.net',
    CREDENTIAL = (IDENTITY = 'Managed Identity')
);
  • 创建对应的外部文件格式和外部表,之后通过INSERT INTO <外部表名> SELECT ...语句将数据写入Blob存储。这种方式支持托管身份认证,且能绕过CETAS的AAD限制。

二、允许SAS令牌流量通过Blob防火墙

如果想继续使用SAS令牌,可通过以下两种方式让VM流量绕过存储防火墙:

  • VNet服务端点:在存储账户的防火墙设置中,启用允许从所选虚拟网络和IP地址访问,然后添加SQL Server VM所在VNet的Microsoft.Storage服务端点。配置后,VM到Blob的流量会通过VNet专用通道传输,存储防火墙会允许该类流量,此时使用SAS令牌即可正常连接。
  • 专用链接:为Blob存储账户创建专用端点,并将其关联到VM所在的VNet。配置完成后,VM会通过私有IP访问Blob存储,完全不走公网路径。在存储防火墙设置中开启允许专用链接访问,即可使用SAS令牌进行数据写入。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 10:52:19