如何在 SQL Server 2008 R2 中启用 Ad Hoc 分布式查询

如何在 SQL Server 2008 R2 中启用 Ad Hoc 分布式查询

当我在 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

从这里: http://sqlserverpedia.com/blog/database-design/error-message-ad-hoc-update-to-system-catalogs-is-not-supported/

首先运行这个:

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

相关内容