web-dev-qa-db-ja.com

アクセスリンクサーバーエラー "プロバイダーはエラーに関する情報を提供しませんでした。"

少し情報。

SQL SERVER 2008 R2 64ビットを実行しています。 Microsoft.ACE.OLEDB.12.0プロバイダーがインストールされています。

私の運用サーバーでは、上記のプロバイダーを使用してアクセスサーバーへのリンクサーバーをセットアップしました。

Accessデータベースを開発環境にコピーし、同じプロバイダーを使用してリンクサーバーをセットアップしてみます。成功するとテスト接続が戻るリンクサーバーからの選択が戻る

メッセージ7399、レベル16、状態1、行1 OLEリンクサーバー "MYdb"のDBプロバイダー "Microsoft.ACE.OLEDB.12.0"がエラーを報告しました。プロバイダーは情報を提供しませんでしたエラーについてメッセージ7330、レベル16、状態2、行1リンクサーバー "MYdb"のOLE DBプロバイダー "Microsoft.ACE.OLEDB.12.0"から行をフェッチできません。

両方のサーバーが同じバージョンのSQL Serverを実行しています。どちらもWindows NT 6.1 64ビットOSです。

AllowInProcessを1に設定すると、テスト接続が失敗します。

グーグルが私を失敗させているので、どんな助けでも大歓迎です。

おかげで、

クリス

6
Lumpy

問題を見つけましたが、なぜ起こっているのかわかりません。

リンクサーバーを照会するには、SSMSを右クリックして[管理者として実行]を選択する必要があります。その後、アクセスデータベースを照会できます。

私がマシンにリモートアクセスしているので、なぜこれが当てはまるのかわかりません。私はマシンの管理者です。サーバーのC:\ DriveにあるAccessデータベースへのリンクサーバーを作成しました。

しかし、これにより少なくともコードを手動で実行できるようになります。これは私の開発サーバーなので、少なくとも今のところそれで十分だと思います。

3
Lumpy

これは、SQL Serverがリンクサーバーのセットアップに使用する「ネットワークサービス」フォルダーの権限が原因で発生します。別のアカウントを使用してリンクサーバーにアクセスするには(サーバーのアクセス許可が正しく設定されていることが前提)、次の操作を行う必要があります。

Windowsエクスプローラーを開き、次のフォルダーに移動します(システムファイルを処理しているので、次の手順に従ってください) ‘C:\ Windows\ServiceProfiles\NetworkService\AppData\Local'。このディレクトリには「Temp」と呼ばれるフォルダが含まれています。これを右クリックして「プロパティ」を選択します。次のダイアログで、[セキュリティ]タブをクリックします。 Accessデータベースエンジンを使用するために設定する標準ユーザーアカウントが表示されている場合、これは既にこのフォルダーに対するいくつかの特権を持っていることを意味します。「ユーザー名のグループ:」リストにない場合は、追加されます。どちらの方法でも、[ユーザー名のグループ:]リストの下にある[編集...]ボタンをクリックすると、[一時的なアクセス許可]ダイアログが起動します。標準ユーザーを権限グループに追加する必要がある場合は、[追加...]ボタンを使用して、次の[ユーザーまたはグループの選択]ダイアログでアカウント名のスペルが正しいことを確認してください。標準ユーザーが権限リストに追加されたら、そのユーザーを選択し、[標準ユーザーの権限]選択メニューで、[許可]列の下の[フルコントロール]チェックボックスをオンにします。 OKをクリックします。もう一度[OK]をクリックして、このメニューを終了します。

これで、この方法で権限を提供する任意のユーザーとしてアクセスクエリを実行できるようになります。

また、Management Studioで次のクエリを実行して、アクセスエンジンを正しく構成していることを確認する必要もあります。

-- These can be run as one batch.
EXEC master.dbo.sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0', N'AllowInProcess', 1 
GO 
EXEC master.dbo.sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0', 
    'DynamicParameters', 1 
GO

-- Run each of the following queries individually.
EXEC sp_configure 'show advanced options',1
reconfigure
EXEC sp_configure 'Ad Hoc Distributed Queries', 1
Reconfigure

これがお役に立てば幸いです。

2
MoonKnight