SQL Server 阻止了对组件 'Ad Hoc Distributed Queries' 的 STATEMENT'OpenRowset/OpenDatasource' 的访问,因为此组件已作为此服务器安全配置的一部分而被关闭。系统管理员可以通过使用 sp_configure 启用 'Ad Hoc Distributed Queries'。有关启用 'Ad Hoc Distributed Queries' 的详细信息
2011-04-15 09:47:30| 分类: SQL小结 |字号 订阅
SQL Server 阻止了对组件 \'Ad Hoc Distributed Queries\' 的访问
在Sql Server中查询一下Excel文件的时候出现问题:
SELECT * FROM OPENROWSET( 'MICROSOFT.JET.OLEDB.4.0','Excel 8.0;IMEX=1;HDR=YES;DATABASE=D:\a.xls',[sheet1$])
结果提示:
SQL Server 阻止了对组件 'Ad Hoc Distributed Queries' 的 STATEMENT'OpenRowset/OpenDatasource' 的访问,因为此组件已作为此服务器安全配置的一部分而被关闭。系统管理员可以通过使用 sp_configure 启用 'Ad Hoc Distributed Queries'。有关启用 'Ad Hoc Distributed Queries' 的详细信息,请参阅 SQL Server 联机丛书中的 "外围应用配置器"。
查询相关资料,找到解决方法:
启用Ad Hoc Distributed Queries:
exec sp_configure 'show advanced options',1
reconfigure
exec sp_configure 'Ad Hoc Distributed Queries',1
reconfigure
使用完成后,关闭Ad Hoc Distributed Queries:
exec sp_configure 'Ad Hoc Distributed Queries',0
reconfigure
exec sp_configure 'show advanced options',0
reconfigure
--查询示例
select * from openrowset('SQLOLEDB' , 'sql服务器名' ; '用户名' ; '密码' , 数据库名.dbo.表名)
分享到:
相关推荐
在描述中提到的问题是,当你尝试使用`OpenRowset`或`OpenDataSource`这两个函数来执行分布式查询时,系统会阻止这些操作,提示"Ad Hoc Distributed Queries"组件已被关闭。这是因为这些函数允许直接从其他数据源(如...
在 SQL Server 中,默认情况下,Ad Hoc Distributed Queries 组件的访问是被禁止的。这是为了提高服务器的安全性。然而,我们可以通过启用 Ad Hoc Distributed Queries 来解决这个问题。下面是一个示例代码: ```...
#### 配置AdHoc Distributed Queries 为了能够在SQL Server中使用`OPENQUERY`或`OPENDATASOURCE`等功能来执行跨服务器查询,需要确保SQL Server实例允许执行Ad Hoc分布式查询。这可以通过修改`...
1. **开启Ad Hoc Distributed Queries**:这是SQL Server允许执行跨服务器查询的配置选项,需要通过执行以下T-SQL命令开启: ``` sp_configure 'show advanced options',1; RECONFIGURE; sp_configure 'Ad Hoc ...
SQL Server blocked access to STATEMENT 'OpenRowset/OpenDatasource' of component 'Ad Hoc Distributed Queries' because this component is turned off as part of the security configuration for this server....
SQL Server 阻止了对组件 'Ad Hoc Distributed Queries' 的 STATEMENT 'OpenRowset/OpenDatasource' 的访问,因为此组件已作为此服务器安全配置的一部分而被关闭。 系统管理员可以通过使用 sp_configure 启用 'Ad ...
当尝试通过SQL Server导入Excel数据时,可能会遇到以下错误提示:“SQL Server阻止了对组件'Ad Hoc Distributed Queries'的STATEMENT'OpenRowset/OpenDatasource'的访问。”这是因为SQL Server默认情况下出于安全...
在进行跨服务器复制之前,需要确保当前的SQL Server实例支持Ad Hoc Distributed Queries(即即席分布式查询)。这一特性允许SQL Server执行跨多个服务器的查询,是实现跨服务器复制的关键步骤之一。 **启用Ad Hoc ...
首先,我们需要启用SQL Server的“Ad Hoc Distributed Queries”选项,这是一个允许在T-SQL语句中使用OPENROWSET或OPENDATASOURCE函数直接访问外部数据源的功能。这通常被视为一种不安全的操作,因为可能会被用来...
在SQL Server 2005中,默认情况下,SQL Server阻止了对组件“Ad Hoc Distributed Queries”的访问。系统管理员可以通过使用sp_configure语句启用“Ad Hoc Distributed Queries”。例如: exec sp_configure 'show ...
#### 步骤一:启用Ad Hoc Distributed Queries 若本地服务器不支持`openrowset()`函数,则需要通过执行以下SQL语句来启用: ```sql -- 启用高级选项 EXEC sp_configure 'showadvancedoptions', 1; GO RECONFIGURE;...
在处理大量数据时,使用Transact-SQL语句可以更加灵活且高效,但需要注意的是,这种方式可能会受到数据库引擎的安全限制,比如可能需要在服务器上开启对Ad Hoc Distributed Queries的支持。 总结起来,SQL SERVER、...
- **Ad Hoc Distributed Queries**:这是一个重要的配置项,需要将其设置为“True”,以允许服务器执行分布式查询,这对于导入导出操作至关重要。 - **步骤**:在“外围应用配置器”对话框中找到“Ad Hoc ...
- 为了能够执行跨服务器查询,需要通过 SQL Server Management Studio 或 T-SQL 命令来启用 Ad Hoc Distributed Queries。 - SQL 代码示例: ``` EXEC sp_configure 'showadvancedoptions', 1 RECONFIGURE ...
在进行Excel数据导入之前,首先需要确保SQL Server 2005支持Ad Hoc Distributed Queries功能。这是因为默认情况下该功能是禁用的,需要手动启用。具体步骤如下: ```sql -- 启用显示高级选项 EXEC sp_configure '...
- **启用 Ad Hoc Distributed Queries:** ```sql EXEC sp_configure 'AdHocDistributedQueries', 1; GO RECONFIGURE; GO ``` - **启用 xp_cmdshell:** ```sql EXEC sp_configure 'showadvancedoptions', ...
但是,执行此操作时可能会遇到错误15281,表示Ad Hoc Distributed Queries被禁用,需要通过`sp_configure`存储过程开启。 方法三:使用BCP工具 BCP(Bulk Copy Program)是Sql Server提供的一个命令行工具,用于...
但请注意,这种方法可能会遇到安全性限制,如错误15281,表示'Ad Hoc Distributed Queries'功能已被禁用。要启用它,需要执行存储过程`sp_configure`: ```sql EXEC sp_configure 'show advanced options', 1; ...
但是,这种方法可能需要在服务器上启用“Ad Hoc Distributed Queries”选项。 5. **编程接口**:如果你有编程经验,可以使用T-SQL存储过程、.NET Framework的SqlBulkCopy类或者Python的pandas库等工具,编写自定义...