質問: 前提として3つの環境をご説明します。 【A】開発マシン(ASP.NETウェブシステム+DBサーバー) Windows 10 Pro 64bit SQL Server 2014 Developer Edition 64bit IIS10.0 【B】本番マシン(ASP.NETウェブシステム+DBサーバー) Windows Server 2012 R2 Standard 64bit SQL Server 2014 Standard Edition 64bit IIS8.5 【C】他システム本番マシン(DBサーバー) Windows Server 2008 Standard 64bit PowerGres 9 32bit(PostgreSQLと同等と思っていただいてよいかと思います) 【A】から【C】へのリンクサーバーはうまく動作します。 【A】上で PostgreSQLの 64bit ODBCを使っています。【A】のストアドプロシージャにOPENQUERYで記述しています。 【B】から【C】へのリンクサーバーがうまく動作しません。 【B】上で PostgreSQLの 64bit ODBCを使っています。【B】のストアドプロシージャにOPENQUERYで記述しています。 動作しない【B】から【C】へのリンクサーバーは 1.【B】上の SQL Server Management Studio 上からSQLを実行するとうまく動作しデータを取得できます。 2.【B】のウェブシステムへアクセスし処理を実行させると以下のエラーが表示されます。 「リンク サーバー "LKSV" の OLE DB プロバイダー "MSDASQL" のデータ ソース オブジェクトを初期化できません。 」 64bit/32bit のアーキテクチャが異なるエラーであれば、【A】から【C】の場合でもエラーが発生すると思うのですがそうはなりません。 多分何かしらの設定がダメだと思うのですが、 【A】と【B】のWindowsやSQL Server の設定を見比べてみても異なる部分が発見できません。 何か気づくポイントはございますでしょうか。 どうぞよろしくお願い致します。
回答: SQL Server 2014 Management Studio において、以下の設定を変更することにより解決できましたのでご報告いたします。 1.対象のリンクサーバーのプロパティを開く 2.セキュリティタブを選択 3.「セキュリティコンテキストを使用しない」→「ログインの現在のセキュリティコンテキストを使用する」に変更 以上で動作するようになりました。 sazi 様をはじめ、ご検討くださいました皆様に御礼申し上げます。