如何在服务商环境的DWH SQL Server与Azure间创建链接服务器?
问题:服务商环境DWH SQL Server与Azure创建链接服务器失败,求Azure端配置及链接字符串指导
我需要在服务商环境的DWH SQL Server与MS Azure之间搭建链接服务器,目前遇到以下状况:
- 已有正常运行的IPsec隧道,其他工程师可通过该隧道从DWH向Azure传输数据,但我要反向操作:从Azure提取D365数据导入DWH
- 熟悉SQL Server链接服务器的操作,但对Azure侧配置不熟悉,推测是Azure端漏了某项设置
- 有一个用AD账户链接Azure取数的SSIS包(手动触发正常),已把相同配置套用到SQL Server链接服务器上,但仍报错(见配图)
想请教:
- Azure端需要做哪些必要配置?
- DWH SQL Server端链接服务器的正确连接字符串是什么?
解决方案
Azure端关键配置项
- 防火墙规则:必须给Azure SQL Server添加允许DWH SQL Server源IP(IPsec隧道对应的本地端IP)的防火墙规则。即使IPsec隧道通了,Azure SQL默认拒绝所有外部IP访问,这一步不能省。
- Azure AD身份验证配置:因为你用AD账户连接,要确认:
- 该AD账户已被添加为Azure SQL Server的外部登录,并被授予目标D365数据库的访问权限(比如
db_datareader) - Azure SQL Server已启用Azure AD身份验证,且该账户拥有跨域身份验证的权限
- 该AD账户已被添加为Azure SQL Server的外部登录,并被授予目标D365数据库的访问权限(比如
- 数据库权限:确保目标D365数据库中,该AD账户拥有
CONNECT权限,以及读取所需表的权限 - 远程连接许可:Azure SQL Server默认允许远程连接,可确认
remote access配置未被修改(一般无需调整)
DWH SQL Server端链接服务器配置
推荐连接字符串(基于SQL Server Native Client)
如果用AD身份验证,链接服务器的提供程序选SQL Server Native Client 11.0或对应版本,连接字符串格式如下:
Server=tcp:<你的Azure SQL服务器名>.database.windows.net,1433;Database=<D365数据库名>;Authentication=Active Directory Integrated;Encrypt=True;TrustServerCertificate=False;
链接服务器配置要点
- 在安全性选项卡中,选择「使用此安全上下文建立连接」,输入AD账户的用户名(格式为
域名\用户名或Azure UPN)和密码 - 若用集成身份验证,需确保SQL Server服务运行的账户是有权限访问Azure AD的AD账户
- 在服务器选项中,启用
数据访问、RPC、RPC Out三个选项
常见错误排查方向
- 身份验证失败:检查AD账户是否在Azure SQL Server中正确配置,权限是否到位,以及SQL Server服务账户能否通过IPsec隧道访问Azure AD完成验证
- 连接超时:确认IPsec隧道的反向流量(Azure到DWH的1433端口)是否开放,Azure防火墙是否真的允许DWH的IP
- 加密报错:确保链接服务器配置中开启
Encrypt=True,且TrustServerCertificate设为False(Azure SQL强制要求加密连接)
内容的提问来源于stack exchange,提问作者Reez
相关产品推荐
相关产品推荐

