1

リモート サーバー (LAN) 上の SQL Server 2008 Express インスタンスにクエリを実行する C# アプリケーションに取り組んでいます。

ワークステーション/開発マシンにいるときは、SQL Server Management Studio を開き、Windows 認証を介して SQL インスタンスに接続できます。すべての意図と目的のために、エクスペリエンスはサーバー上の SSMS で作業するのと同じです。私が知る限り、サーバー上でできることはすべて自分のワークステーションから実行できます。

同じサーバーが Access 2003 .mdb ファイルをホストし、SQL インスタンスでリンク サーバーとして設定されます。

問題のクエリは、SQL データベースと Access データベースのテーブルを結合してコンパイルされた結果セットを返します。

サーバー上でクエリを実行すると、つまり、サーバー マシンで SQL Server Management Studio を実行すると、すべてが期待どおりに機能します。ただし、開発マシンから同じクエリを実行しようとすると、SSMS で実行する場合でも、統合テストを実行したりアプリケーションをデバッグしたりする場合でも、リンク サーバーでは何もできません。SSMS で確認できますが、何かを実行しようとすると、次のようになります。

<DatabaseNameリンク サーバー ' >'の OLE DB プロバイダー 'Microsoft.Jet.OLEDB.4.0' のデータ ソース オブジェクトを初期化できません。

このエラーに関連する多くのスレッドを調べ、プロバイダー設定の多くの順列を試しましたが、すべて役に立ちませんでした。

  • Access DBにはパスワードがありません(パスワードなしで名前「Admin」を使用するようにセキュリティを設定しようとしました)
  • ワークステーション ユーザー アカウントには、Access DB が配置されているサーバー ディレクトリに対する完全なアクセス許可があります。
  • Win XP Pro SP3 のサーバーで同じ動作が発生し、現在は Win Server 2003 で発生しています。
  • Win XP Pro SP3 と同じ動作がクライアントで発生し、現在は Win 7 Pro x32 で発生しています。

リモートではなく、サーバー上でうまく機能します。

大変助かりました。

4

1 に答える 1

1

Burnsys によって提案されているように、NT Auth の代わりに SQL Server 認証を使用すると、うまくいくようです。問題の理由は未解決の問題のようです。

于 2010-02-02T16:28:30.427 に答える