0

アプリの一部をWindowsサービスとして実行しており、ODBCを介してインポートするには、DSNにアクセスできる必要があります。ただし、アクセスできるDSNについては、試行錯誤の結果、多くの制限があるようです。たとえば、1。サービスを実行しているアカウントに管理者権限がない限り、システムDSNにアクセスできないようです。(接続しようとすると、アクセス拒否エラーが発生します)2.別のユーザーによって作成されたユーザーDSNにアクセスします(これは理解できます)。3.ネットワークを介してファイルDSNにアクセスします

ファイルDSNの目的は、他のコンピューターがそれを使用して接続できるようにすることであると読みましたが、それを機能させることができないようです。

それで、Windowsサービスを使用するときにDSNにアクセスする際のすべてのルールと制限が何であるかを知っているか、どこで見つけることができるかを知っていますか?ありがとう

4

3 に答える 3

1

3 つの主要なルールはすでにご自身で発見されていると思います。:-)

ただし、サービス アカウントの管理者権限はおそらく必要ありません。IANANA (私はネットワーク管理者ではありません) ですが、あなたのサービス アカウントには、おそらく ODBC ファイルまたはディレクトリのいずれかへの読み取りアクセスが必要なだけです。

于 2008-09-24T15:12:38.457 に答える
1

これはあなたの #1 と #2 の間のどこかです: 時には正しいファイルパーミッションも必要です。以前、Vista マシンで DB2 DSN に接続する際に問題が発生しました。理由は何であれ (一時ファイルを書き出すためかもしれませんが、ユーザー固有の場所ではなく、この場所でそのようなことを行う理由はわかりません)。ドライバーは、IBM がクライアント バイナリとライブラリをインストールしたディレクトリへの書き込みアクセスを必要としていました。これは、管理者によって実行され、C ドライブのルートにありました。

于 2008-11-09T23:30:54.133 に答える
0

サービスでマップされたドライブに接続することはできません。マップされたドライブは、デスクトップ上のアイコンを追跡するデスクトップ ヒープと呼ばれるメモリとやり取りする必要があります。サービスはそのメモリにアクセスできません。dsn を使用する必要がある場合は、systemdsn を作成します。接続文字列を使用してそれを app.config に保存し、暗号化 API を使用してユーザー名とパスワードを暗号化することをお勧めします。

于 2009-08-04T22:51:41.733 に答える