既定では、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' へのアドホック アクセスが拒否されました。 リンク サーバー経由でこのプロバイダーにアクセスしてください。
例示
次の例では、アドホック分散クエリを有効にし、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 AdventureWorks2012.HumanResources.Department
ORDER BY GroupName, Name') AS a;
GO
こちらもご覧ください
サーバー構成オプション (SQL Server)
リンク サーバー (データベース エンジン)
OPENROWSET (Transact-SQL)
OPENDATASOURCE (Transact-SQL)
sp_addlinkedserver (Transact-SQL)