ad hoc distributed queries サーバー構成オプション

SQL Server の既定では、OPENROWSET および OPENDATASOURCE を使用したアドホックな分散クエリは実行できません。 このオプションを 1 に設定すると、SQL Server でアドホック アクセスを実行できます。 このオプションを設定しないか 0 に設定すると、SQL Server でアドホック アクセスは実行できません。

アドホック分散クエリの実行時には、OLE DB を使用するリモート データ ソースへの接続に OPENROWSET 関数および OPENDATASOURCE 関数が使用されます。 OPENROWSET 関数および OPENDATASOURCE 関数は、アクセス頻度の低い OLE DB データ ソースを参照する目的のみに使用してください。 何度もアクセスするデータ ソースに対しては、リンク サーバーを定義してください。

セキュリティに関する注意セキュリティに関する注意

アドホック名を使用できるようにすると、SQL Server への認証済みログインであればプロバイダーにアクセスできるようになります。 SQL Server の管理者は、ローカル ログインからアクセスされても安全なプロバイダーに対してのみ、この機能を有効にしてください。

解説

Ad Hoc Distributed Queries を有効にせずにアドホック接続を試みると、次のエラーが発生します (メッセージ 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

関連項目

参照

OPENROWSET (Transact-SQL)

OPENDATASOURCE (Transact-SQL)

sp_addlinkedserver (Transact-SQL)

概念

サーバー構成オプション

リンク サーバー (データベース エンジン)