特定分散式查詢伺服器組態選項
根據預設,SQL Server不允許使用 OPENROWSET 和 OPENDATASOURCE 的臨機操作分散式查詢。 當將此選項設定為 1 時,SQL Server 允許特定存取。 如果未設定此選項或設定為 0,SQL Server不允許臨機操作存取。
特定分散式查詢會使用 OPENROWSET 和 OPENDATASOURCE 函數,連接到使用 OLE DB 的遠端資料來源。 OPENROWSET 與 OPENDATASOURCE 只能用來參考不常存取的 OLE DB 資料來源。 對於經常存取的資料來源,請定義連結伺服器。
重要
啟用特定名稱,表示 SQL Server 的任何驗證登入都可以存取該提供者。 對於任何可安全由本機登入存取的提供者,SQL Server 系統管理員應該為其啟用此功能。
備註
嘗試建立未啟用特定分散式查詢的特定連線,產生錯誤:訊息 7415、層級 16、狀態 1、行 1
特定存取至 OLE DB 提供者 'Microsoft.ACE.OLEDB.12.0' 已經遭到拒絕。 您必須透過連結伺服器來存取此提供者。
範例
下列範例會啟用特定分散式查詢,然後使用 Seattle1
函數來查詢名為 OPENROWSET
的伺服器。
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)
連結的伺服器 (Database Engine)
OPENROWSET (Transact-SQL)
OPENDATASOURCE (Transact-SQL)
sp_addlinkedserver (Transact-SQL)