ad hoc distributed queries (伺服器組態選項)

適用於:SQL Server

根據預設,SQL Server 不允許使用 OPENROWSET 與 OPENDATASOURCE 進行特定分散式查詢。 當將此選項設定為 1 時,SQL Server 允許特定存取。 當未設定此選項或將其設定為 0 時,SQL Server 不允許特定存取。

特定分散式查詢會使用 OPENROWSET 和 OPENDATASOURCE 函數,連接到使用 OLE DB 的遠端資料來源。 OPENROWSET 與 OPENDATASOURCE 只能用來參考不常存取的 OLE DB 資料來源。 對於經常存取的資料來源,請定義連結伺服器。

啟用特定名稱,表示 SQL Server 的任何驗證登入都可以存取該提供者。 對於任何可安全由本機登入存取的提供者,SQL Server 系統管理員應該為其啟用此功能。

備註

若您嘗試透過停用特定分散式查詢來進行特定連線,將會看到下列錯誤:

Msg 7415, Level 16, State 1, Line 1  
  
Ad hoc access to OLE DB provider 'Microsoft.ACE.OLEDB.12.0' has been denied. You must access this provider through a linked server.  

範例

下列範例會啟用特定分散式查詢,然後使用 Seattle1 函數來查詢名為 OPENROWSET 的伺服器。

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

Azure SQL Database 與 Azure SQL 受控執行個體

如需參考,請參閱功能比較:Azure SQL Database 與 Azure SQL 受控執行個體

另請參閱