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

適用対象:SQL Server

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

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

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

解説

アドホック分散クエリを無効にしてアドホック接続を作成しようとすると、次のエラーが表示されます。

Msg 7415, Level 16, State 1, Line 1  
  
Ad hoc access to OLE DB provider 'Microsoft.ACE.OLEDB.12.0' has been denied. You must access this provider through a linked server.  

次の例では、アドホック分散クエリを有効にし、 Seattle1 関数を使用して OPENROWSET という名前のサーバーにクエリを実行します。

sp_configure 'show advanced options', 1;  
RECONFIGURE;
GO 
sp_configure 'Ad Hoc Distributed Queries', 1;  
RECONFIGURE;  
GO  
  
SELECT a.*  
FROM OPENROWSET('MSOLEDBSQL', 'Server=Seattle1;Trusted_Connection=yes;',  
     'SELECT GroupName, Name, DepartmentID  
      FROM AdventureWorks2022.HumanResources.Department  
      ORDER BY GroupName, Name') AS a;  
GO  

Azure SQL Database と Azure SQL Managed Instance

機能の比較: Azure SQL Database と Azure SQL Managed Instance」を参照してください。

関連項目