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
関連項目
参照
sp_addlinkedserver (Transact-SQL)