【问题标题】:How to enable Ad Hoc Distributed Queries如何启用即席分布式查询
【发布时间】:2013-01-10 17:45:35
【问题描述】:

当我在 SQL Server 2000 中使用 OPENROWSET 运行查询时,它可以工作。

但 SQL Server 2008 中的相同查询会产生以下错误:

SQL Server 阻止了对组件“Ad Hoc Distributed Queries”的声明“OpenRowset/OpenDatasource”的访问,因为该组件作为该服务器安全配置的一部分被关闭。系统管理员可以使用 sp_configure

启用 'Ad Hoc Distributed Queries'

【问题讨论】:

  • 顺便说一句,您最好注意警告并更改您的 SQL 代码以使用链接服务器而不是 OPENROWSET。
  • @RBarryYoung 这并不是一个真正的“警告”——它只是一个说明它没有启用的通知。启用此功能有什么危险?
  • 如果恶意用户能够在某处注入 SQL,打开此选项可以让他们探测他们选择的数据文件。如果您将其设置为链接服务器,则只有特定文件 - 链接服务器 - 被公开(并且您拥有可以使用的集成 SQL Server 安全性等)。
  • 但我确实喜欢这个选项用于我的内部测试和数据迁移......因此寻找如何再次使用它:)

标签: sql sql-server-2008


【解决方案1】:

如果“不支持”对系统目录的临时更新,或者如果您收到“Msg 5808”,那么您需要像这样配置覆盖:

EXEC sp_configure 'show advanced options', 1
RECONFIGURE with override
GO
EXEC sp_configure 'ad hoc distributed queries', 1
RECONFIGURE with override
GO

【讨论】:

    【解决方案2】:

    您可以检查以下命令

    sp_configure 'show advanced options', 1;
    RECONFIGURE;
    GO  --Added        
    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
    

    或者这个documentation link

    【讨论】:

    • 你需要在第一个'RECONFIGURE;'之后添加一个'GO'否则这是一个完美的解决方案
    • 您不需要在 SELECT 之前链接服务器吗?
    【解决方案3】:
    sp_configure 'show advanced options', 1;
    GO
    RECONFIGURE;
    GO
    sp_configure 'Ad Hoc Distributed Queries', 1;
    GO
    RECONFIGURE;
    GO
    

    【讨论】:

    • 你不需要在每一行之后都写一个 GO
    【解决方案4】:

    以下命令可能对您有所帮助..

    EXEC sp_configure 'show advanced options', 1
    RECONFIGURE
    GO
    EXEC sp_configure 'ad hoc distributed queries', 1
    RECONFIGURE
    GO
    

    【讨论】:

    • 唯一缺少的是您应该将“显示高级选项”改回 0
    猜你喜欢
    • 2010-12-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多