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

本地Microsoft SQL Server环境连接Azure Dataverse环境:Linked Server可行性及连接属性咨询

用SQL Server Linked Server连接Dataverse实现数据下载的方案

当然可以!用SQL Server的Linked Server完全能实现把Dataverse数据同步到本地SQL Server的需求,我帮你梳理清楚可行性、具体配置步骤,还有一些关键注意事项。

可行性确认

先给你吃个定心丸:这个方案是官方支持的。Dataverse提供了专门的OLE DB驱动,SQL Server的Linked Server可以通过这个驱动建立跨环境的链接,之后你就能像查询本地SQL表一样访问Dataverse的实体数据,直接把数据导入到本地库中。

具体配置步骤

1. 先装必备驱动

首先要在本地SQL Server所在的服务器上安装Microsoft Dynamics 365 OLE DB Provider——这是连接Dataverse的专用驱动,确保下载的版本和你的Dataverse环境兼容(对应Power Platform的当前版本即可)。

2. 图形界面配置Linked Server(SSMS操作)

打开SQL Server Management Studio,跟着步骤来:

  • 展开左侧的Server Objects > Linked Servers,右键选New Linked Server
  • General选项卡:
    • Linked server:给链接起个好记的名字,比如DATAVERSE_LINK
    • Server type:选Other data source
    • Provider:下拉找到Microsoft Dynamics 365 OLE DB Provider(装了驱动才会出现)
    • Product name:填Dataverse或者Dynamics 365都行
    • Data source:填你的Dataverse环境URL,格式是https://<你的环境名>.crm.dynamics.com
    • Provider string:如果用账号密码登录,可以填Authentication=OAuth;Username=<你的邮箱账号>;Password=<你的密码>,不过更推荐后面在Security选项卡配置
  • Security选项卡:
    • 选Be made using this security context,然后填入有权限访问Dataverse的账号(比如你的Azure AD邮箱)和对应密码
    • 要是本地SQL Server的运行账号已经有Dataverse访问权限,也可以选Be made using the login's current security context,不用存密码更安全
  • Server Options选项卡:
    • 把RPC和RPC Out都设为True(方便执行远程操作)
    • Data Access设为True,其他默认就行

3. T-SQL脚本配置(适合自动化/批量部署)

如果习惯用脚本,直接跑下面的代码就行,记得替换掉占位符:

-- 创建Linked Server
EXEC sp_addlinkedserver
    @server = N'DATAVERSE_LINK',
    @srvproduct=N'Dataverse',
    @provider=N'MSDYN365OLEDB',
    @datasrc=N'https://<你的环境名>.crm.dynamics.com';

-- 配置登录映射
EXEC sp_addlinkedsrvlogin
    @rmtsrvname=N'DATAVERSE_LINK',
    @useself=N'False',
    @locallogin=NULL,
    @rmtuser=N'你的账号邮箱@xxx.com',
    @rmtpassword=N'你的Dataverse密码';

-- 开启必要的服务器选项
EXEC sp_serveroption @server=N'DATAVERSE_LINK', @optname=N'rpc', @optvalue=N'true';
EXEC sp_serveroption @server=N'DATAVERSE_LINK', @optname=N'rpc out', @optvalue=N'true';
EXEC sp_serveroption @server=N'DATAVERSE_LINK', @optname=N'data access', @optvalue=N'true';

4. 测试连接&下载数据

  • 测试:右键刚创建的Linked Server,选Test Connection,成功的话就没问题了
  • 下载数据:用OPENQUERY或者直接查询链接服务器的实体(Dataverse的实体在Linked Server里以视图形式存在,逻辑名比如account对应“客户”实体)
    举个例子,把Dataverse的客户表数据导入本地的Local_Account_Backup表:
-- 首次全量导入(自动创建本地表)
SELECT * INTO Local_Account_Backup
FROM OPENQUERY(DATAVERSE_LINK, 'SELECT accountid, name, address1_city, modifiedon FROM account');

-- 增量更新(只拉取最近修改的数据)
INSERT INTO Local_Account_Backup (accountid, name, address1_city, modifiedon)
SELECT accountid, name, address1_city, modifiedon
FROM OPENQUERY(DATAVERSE_LINK, 'SELECT accountid, name, address1_city, modifiedon FROM account WHERE modifiedon > ''2024-05-01''');

关键注意事项

  • 权限问题:用来连接的Dataverse账号必须有对应实体的读取权限,比如给账号分配System Reader角色,或者针对特定实体设置Read权限
  • 驱动兼容性:一定要装对应版本的OLE DB驱动,不然可能出现连接失败的问题,去微软官网下载最新版就行
  • 身份验证优化:除了账号密码,还支持Azure AD集成身份验证,如果本地服务器是域环境,用Windows身份验证更安全,不用在Linked Server里存明文密码
  • 性能优化:如果数据量很大,记得用分页查询(Dataverse支持TOP或者FetchXML分页),避免一次性拉取太多数据拖慢系统
  • 实体逻辑名:Dataverse的实体在Linked Server里用的是逻辑名,不是显示名,比如“联系人”对应contact,可以在Power Apps Maker门户或者Advanced Find里查看实体的逻辑名称

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.29 06:42:36