特定分散式查詢選項

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

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

安全性注意事項安全性注意事項

如果啟用特定名稱的使用,就代表 SQL Server 的任何驗證登入都可以存取該提供者。SQL Server 管理員應該針對由任何本機登入存取都很安全的提供者啟用此功能。如需詳細資訊,請參閱<存取外部資料>中的 DisallowAdhocAccess 選項。

範例

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

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 AdventureWorks2008R2.HumanResources.Department
      ORDER BY GroupName, Name') AS a;
GO