即席分布式查询服务器配置选项

默认情况下,SQL Server 不允许使用 OPENROWSET 和 OPENDATASOURCE 进行即席分布式查询。 当此选项设置为 1 时,SQL Server 允许即席访问。 如果未设置或设置为 0,则 SQL Server 不允许临时访问。

即席分布式查询使用 OPENROWSET 和 OPENDATASOURCE 函数连接到使用 OLE DB 的远程数据源。 OPENROWSET 和 OPENDATASOURCE 应仅用于引用不经常访问的 OLE DB 数据源。 对于将多次访问的任何数据源,请定义链接服务器。

重要

启用临时自定义名称的使用意味着任何已经过身份验证的 SQL Server 登录都可以访问该提供程序。 SQL Server 管理员应为任何本地登录名安全访问的提供程序启用此功能。

注解

尝试与 未启用即席分布式查询 建立临时连接会导致错误:Msg 7415、级别 16、状态 1、第 1 行

已拒绝对 OLE DB 提供程序“Microsoft.ACE.OLEDB.12.0”的临时性访问。 必须通过链接服务器来访问此访问接口。

例子

以下示例启用即席分布式查询,然后查询使用OPENROWSET函数命名Seattle1的服务器。

sp_configure 'show advanced options', 1;  
RECONFIGURE;  
sp_configure 'Ad Hoc Distributed Queries', 1;  
RECONFIGURE;  
GO  
  
SELECT a.*  
FROM OPENROWSET('SQLNCLI', 'Server=Seattle1;Trusted_Connection=yes;',  
     'SELECT GroupName, Name, DepartmentID  
      FROM AdventureWorks2012.HumanResources.Department  
      ORDER BY GroupName, Name') AS a;  
GO  

另请参阅

服务器配置选项 (SQL Server)
链接服务器(数据库引擎)
OPENROWSET (Transact-SQL)
OPENDATASOURCE (Transact-SQL)
sp_addlinkedserver(Transact-SQL)