1

私はSQLサーバー2000とリンクサーバーによって接続されたAccessデータベースmdbを持っていますが、SQLテーブル(ユーザー)ベースのデータベースアクセスでデータを更新するC#のプログラムを持っています。

プログラムを実行すると、次のエラー メッセージが返されます。

OLE DB provider 'Microsoft.Jet.OLEDB.4.0' reported an error. Authentication failed. [OLE / DB provider returned message: Can not start the application. Missing information file of the working group or is opened exclusively by another user.] OLE DB error trace [OLE / DB Provider 'Microsoft.Jet.OLEDB.4.0' IDBInitialize:: Initialize returned 0x80040E4D: Authentication failed.]´ .

プログラム、SQL サーバー、およびデータベース アクセスの両方がリモート サーバー上にあります。

ローカルサーバーでは、次を実行することで問題が解決しました。

"sp_addlinkedsrvlogin 'ActSC', 'false', NULL, 'admin', NULL".

次にリモートサーバーで試してみますが、結果はありません: "sp_addlinkedsrvlogin 'ActSC', true, null, 'user', 'pass'".

リモート サーバー上および「クエリ アナライザー」からの sql update ステートメントは正しく機能しています。

何が問題なのか考えられますか?

ありがとう!

4

2 に答える 2

0

mdw ファイルにリモートでアクセスできませんか? プロバイダー文字列 (Jet OLEDB:System Database=MySystem.mdw) でリモート mdw ファイルの場所を指定し、ローカル サーバーからのアクセスを許可します。

于 2009-10-06T19:04:05.680 に答える
0

私の推測では、これはユーザーのなりすましに関連しています。簡単に言うと、Query Analyzer を使用するときは、C# アプリケーションからサーバーにアクセスするときとは異なるログインを使用していることになります。C# アプリで同じユーザー名とパスワードを設定してみてください。

これを解決するには、ユーザー名とパスワードを使用してリンク サーバー接続を構成し、SQL サーバーが他のパスワード/現在のユーザー資格情報を無視するようにします。この印刷画面の最後のオプション/ラジオを使用/チェックし (中央のログイン マッピング リストは無視してください)、すべての接続に使用するユーザー名とパスワードを入力します。

リンク サーバーのプロパティ
(ソース: msdn.com )

于 2010-05-24T19:25:09.207 に答える