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

適用対象: yesSQL Server noAzure SQL Database noAzure Synapse Analytics (SQL DW) noParallel Data Warehouse APPLIES TO: yesSQL Server noAzure SQL Database noAzure Synapse Analytics (SQL DW) noParallel Data Warehouse

SQL ServerSQL Server の既定では、OPENROWSET および OPENDATASOURCE を使用したアドホックな分散クエリは実行できません。By default, SQL ServerSQL Server does not allow ad hoc distributed queries using OPENROWSET and OPENDATASOURCE. このオプションを 1 に設定すると、 SQL ServerSQL Server でアドホック アクセスを実行できます。When this option is set to 1, SQL ServerSQL Server allows ad hoc access. このオプションを設定しなかった場合または 0 に設定した場合は、 SQL ServerSQL Server でアドホック アクセスを実行できません。When this option is not set or is set to 0, SQL ServerSQL Server does not allow ad hoc access.

アドホック分散クエリの実行時には、OLE DB を使用するリモート データ ソースへの接続に OPENROWSET 関数および OPENDATASOURCE 関数が使用されます。Ad hoc distributed queries use the OPENROWSET and OPENDATASOURCE functions to connect to remote data sources that use OLE DB. OPENROWSET 関数および OPENDATASOURCE 関数は、アクセス頻度の低い OLE DB データ ソースを参照する目的のみに使用してください。OPENROWSET and OPENDATASOURCE should be used only to reference OLE DB data sources that are accessed infrequently. 何度もアクセスするデータ ソースに対しては、リンク サーバーを定義してください。For any data sources that will be accessed more than several times, define a linked server.


アドホック名を使用できるようにすると、 SQL ServerSQL Server への認証済みログインであればプロバイダーにアクセスできるようになります。Enabling the use of ad hoc names means that any authenticated login to SQL ServerSQL Server can access the provider. SQL ServerSQL Server の管理者は、ローカル ログインからアクセスされても安全なプロバイダーに対してのみ、この機能を有効にしてください。administrators should enable this feature for providers that are safe to be accessed by any local login.


アドホック分散クエリ を有効にせずにアドホック接続を試みると、次のエラーが発生します (メッセージ 7415、レベル 16、状態 1、行 1)。Attempting to make an ad hoc connection with Ad Hoc Distributed Queries not enabled results in error: Msg 7415, Level 16, State 1, Line 1

OLE DB プロバイダー 'Microsoft.ACE.OLEDB.12.0' へのアドホック アクセスが拒否されました。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 という名前のサーバーにクエリを実行します。The following example enables ad hoc distributed queries and then queries a server named Seattle1 using the OPENROWSET function.

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

参照See Also

サーバー構成オプション (SQL Server) Server Configuration Options (SQL Server)
リンク サーバー (データベース エンジン) Linked Servers (Database Engine)
sp_addlinkedserver (Transact-SQL)sp_addlinkedserver (Transact-SQL)