sql >> データベース >  >> RDS >> Sqlserver

「SQLServerがコンポーネント「アドホック分散クエリ」のステートメント「OpenRowset/OpenDatasource」へのアクセスをブロックした」を修正

    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

    1. to_char()関数を使用せずにPostgreSQLで日付から年と月を抽出するにはどうすればよいですか?

    2. SQL Serverシステムデータベース–基本概念

    3. NoSQLデータベースでのデータの柔軟性の制約

    4. OracleのEXTRACT(日時)関数