当我在 SQL Server 2000 中使用 OPENROWSET 运行查询时,它可以正常工作。
但在 SQL Server 2008 中执行相同的查询会生成以下错误:
SQL Server 阻止了对组件“Ad Hoc Distributed Queries”的 STATEMENT 'OpenRowset/OpenDatasource' 的访问,因为此组件已作为此服务器安全配置的一部分关闭。系统管理员可以使用 sp_configure 启用“Ad Hoc Distributed Queries”的使用
我试着跑
EXEC sp_configure 'show advanced options', 1
RECONFIGURE
GO
EXEC sp_configure 'ad hoc distributed queries', 1
RECONFIGURE
GO
但任何试图运行RECONFIGURE
给出错误:
Msg 5808, Level 16, State 1, Line 1
Ad hoc update to system catalogs is not supported.
如何在 SQL Server 2008 R2 中启用 Ad Hoc 分布式查询?
笔记:Microsoft SQL Server 2008 R2 (SP1) - 10.50.2550.0 (X64) 2012 年 6 月 11 日 16:41:53 版权所有 (c) Microsoft Corporation Windows NT 6.1(Build 7601:Service Pack 1)(虚拟机管理程序)上的标准版(64 位)
答案1
首先运行这个:
EXEC sp_configure ‘allow updates’, 0
RECONFIGURE
或者将您的RECONFIGURE
语句更改为RECONFIGURE WITH OVERRIDE
:
EXEC sp_configure 'show advanced options', 1
RECONFIGURE WITH OVERRIDE --really reconfigure
GO
EXEC sp_configure 'ad hoc distributed queries', 1
RECONFIGURE WITH OVERRIDE --really reconfigure
GO