SQL Serverエラー「OLE DBプロバイダー 'Microsoft.ACE.OLEDB.12.0'へのアドホックアクセス」のヘルプ


8

したがって、SQL Server 2008 R2でビューをクエリしようとすると、ユーザーが次のエラーを受け取るという興味深い問題があります。

メッセージ7415、レベル16、状態1、行1 OLE DBプロバイダー 'Microsoft.ACE.OLEDB.12.0'へのアドホックアクセスが拒否されました。リンクサーバーを介してこのプロバイダーにアクセスする必要があります。

問題を調査したところ、OPENROWSETパラメータ、レジストリ値の変更、AdHoc DIstributed Queriesなどに変更を加えた記事がいくつかあります(以下の記事へのリンク)。

http://www.johnsoer.com/blog/?p=538

http://www.remotedbaexperts.com/Blog/dba_tips/2010/09/ad-hoc-access-to-ole-db-provider-microsoft-ace-oledb-12-0-has-been-denied/

上記のリンクの手順に従ってもエラーが発生します。

ここでの注意点は、テストアカウントを作成してsaを指定したときに、問題なく実行されたことです。管理者権限を持つ同僚も問題なくクエリを実行できます。

このクエリは、このインスタンスをホストしているサーバーのローカルのExcelファイルから提供されています。

2008年の他の修正を知っている人はいますか?

回答:


10

私は昨日同じ問題を抱えたばかりであり、これが私がそれをどのように解決できたかです:

[アドホックアクセスを許可しない]は[プロバイダーオプション]ページ(SQL Server Management Studio)では有効になっていませんが、

ここに画像の説明を入力してください

レジストリにはDisallowadHocAccess = 0キーがなく、何らかの理由でそこにあることが必要です。

ここに画像の説明を入力してください

レジストリにキーを追加した後、管理者以外のユーザーでもクエリを実行できました。

ここに画像の説明を入力してください


8
  1. プロバイダーで「アドホックアクセスを許可しない」が有効になっているかどうかを確認します。これは、SQL Management Studioの次のナビゲーションパスにあります。

  2. サーバーオブジェクト/リンクサーバー/プロバイダー/Microsoft.ACE.OLEDB.12.0

  3. "Microsoft.ACE.OLEDB.12.0"プロバイダーを右クリックし、コンテキストメニューから[プロパティ]を選択します。

  4. ポップアップウィンドウで、[アドホックアクセスを許可しない]チェックボックスがオフになっていることを確認します。

または、次のSQLを使用して無効に設定することもできます。

sp_configure 'show advanced options', 1
GO
RECONFIGURE
GO
sp_configure 'Ad Hoc Distributed Queries', 1
GO
RECONFIGURE

次に、レジストリキーが設定されていることを確認します。Regeditで、次のようにナビゲートします。

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQLServer\MSSQL<major version>_<minor version>.<instance name>\Providers\Microsoft.ACE.OLEDB.12.0]
"DisallowAdhocAccess"=dword:00000000

注:デフォルトのインスタンスを使用している場合は、インスタンス名がない可能性があります。

別の注意:.regキーを設定するためにそれをコピーしてファイルに貼り付けることができます。

キーポイント:私の経験から、データベースにアクセスするユーザーが管理者または所有者タイプのユーザーでない場合にのみ、レジストリキーが必要です。したがって、高セキュリティ環境ではこのレジストリキーが必要になります。


この回答を投稿したのは、他の回答には職場でブロックされているために表示されない画像が含まれていたためです。どうしても必要な場合以外は、画像を使用しないでください。
Slogmeister Extraordinaire、2014年

レジストリキーを追加するのがうまくいきました。GUIではなく、。
Tim

0

私の場合、[HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Microsoft SQLServer \ MSSQL _。\ Providers \ Microsoft.ACE.OLEDB.12.0]に "DisallowAdhocAccess"という値= 0という名前のレジストリキーがあることを確認してください。存在しない場合は作成してください。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.