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 の管理者は、ローカル ログインからアクセスされても安全なプロバイダーに対してのみ、この機能を有効にしてください。詳細については、「外部データのアクセス」の 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

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