SQLServerでエラーメッセージ15281、レベル16が発生した場合は、アドホック分散クエリを実行しようとしているが、アドホック分散クエリを有効にしていない可能性があります。
これは、アドホック分散クエリを有効にすることで簡単に修正できます。
エラーの例
エラーを生成するコードの例を次に示します。
SELECT * FROM OPENROWSET(
'SQLNCLI',
'Server=Homer;Trusted_Connection=yes;',
'SELECT * FROM Music.dbo.vAlbums');
結果:
Msg 15281, Level 16, State 1, Line 1 SQL Server blocked access to STATEMENT 'OpenRowset/OpenDatasource' of component 'Ad Hoc Distributed Queries' because this component is turned off as part of the security configuration for this server. A system administrator can enable the use of 'Ad Hoc Distributed Queries' by using sp_configure. For more information about enabling 'Ad Hoc Distributed Queries', search for 'Ad Hoc Distributed Queries' in SQL Server Books Online.
エラーメッセージに示されているように、システム管理者はsp_configure
を使用してアドホック分散クエリを有効にできます。 システムストアドプロシージャ。
解決策
次のコードを実行して問題を修正します。
EXEC sp_configure 'show advanced options', 1
RECONFIGURE WITH OVERRIDE
GO
EXEC sp_configure 'ad hoc distributed queries', 1
RECONFIGURE WITH OVERRIDE
GO
最初の部分では、[詳細オプションの表示]を有効にして、sp_configure
を表示します。 システムストアドプロシージャの詳細オプション。これが有効になっていない場合は、構成オプションが存在しないか、高度なオプションである可能性があることを示す別のエラー(おそらくエラーメッセージ15123)が発生します。
2番目の部分では、sp_configure
を使用します アドホック分散クエリオプションを有効にします。
そのコードを実行すると、アドホック分散クエリを実行できるようになります。
詳細オプションを非表示にする
アドホック分散クエリを有効にしたら、[詳細オプションの表示]を再度非表示にする必要があります。
EXEC sp_configure 'show advanced options', 0;
GO
RECONFIGURE;
GO