SQL Server 阻止了对组件 'Ad Hoc Distributed Queries' 的 STATEMENT'OpenRowset/OpenDatasource' 的访问...

本文介绍了解决SQLServer跨服务器导入数据库表时遇到的问题,即因AdHocDistributedQueries组件被禁用导致无法使用OPENROWSET或OPENDATASOURCE访问远程数据源的方法。通过执行特定的SQL命令来开启和关闭该组件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

sqlserver 跨电脑服务器 导数据库 表

原因:在从远程服务器复制数据到本地时出现“SQL Server 阻止了对组件 'Ad Hoc Distributed Queries' 的 STATEMENT'OpenRowset/OpenDatasource' 的访问,因为此组件已作为此服务器安全配置的一部分而被关闭。系统管理员可以通过使用 sp_configure 启用 'Ad Hoc Distributed Queries'。有关启用 'Ad Hoc Distributed Queries' 的详细信息 ”错误,因此网上搜索,发现以下解决方法:

启用Ad Hoc Distributed Queries:

[sql]  view plain copy print ?
 
  1. exec sp_configure 'show advanced options',1  
  2. reconfigure  
  3. exec sp_configure 'Ad Hoc Distributed Queries',1  
  4. reconfigure  

    使用完成后,关闭Ad Hoc Distributed Queries:

[sql]  view plain copy print ?
 
  1. exec sp_configure 'Ad Hoc Distributed Queries',0  
  2. reconfigure  
  3. exec sp_configure 'show advanced options',0  
  4. reconfigure   

本人验证成功:

后查询SQL联机丛书,MSDN官方为下以内容:

 

默认情况下,SQL Server并不允许专案分布式查询使用OPENROWSET和OPENDATASOURCE。当这个选项被设置为1,SQL Server允许即席访问。当此选项未设置或设置为0,SQL Server不允许即席访问。

特设分布式查询使用OPENROWSET和OPENDATASOURCE函数连接到远程数据源,使用OLE DB。 OPENROWSET和OPENDATASOURCE应该只用于引用OLE DB数据源很少访问。将会比多次访问的任何数据源,定义链接服务器。

 Security Note 安全注意事项  
启用使用的专案名称,意味着任何身份验证登录到SQL Server可以访问的供应商。  SQL Server管理员应该启用此功能为供应商,安全,可以由任何本地登录访问。欲了解更多信息,请参阅在访问外部数据 的DisallowAdhocAccess选项

http://msdn.microsoft.com/en-us/library/ms187569.aspx

特此MARK!!!

转载于:https://www.cnblogs.com/weihengblogs/p/4341000.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值