質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
SQL Server

SQL Serverはマイクロソフトのリレーショナルデータベース管理システムです。データマイニングや多次元解析など、ビジネスインテリジェンスのための機能が備わっています。

PostgreSQL

PostgreSQLはオープンソースのオブジェクトリレーショナルデータベース管理システムです。 Oracle Databaseで使われるPL/SQLを参考に実装されたビルトイン言語で、Windows、 Mac、Linux、UNIX、MSなどいくつものプラットフォームに対応しています。

ASP.NET

ASP.NETは動的なWebサイトやWebアプリケーション、そしてWebサービスを構築出来るようにする為、Microsoftによって開発されたウェブアプリケーション開発フレームワークです。

Q&A

解決済

2回答

12412閲覧

リンクサーバーを設定しているが、ウェブからだと接続できない

ASP.NET

総合スコア24

SQL Server

SQL Serverはマイクロソフトのリレーショナルデータベース管理システムです。データマイニングや多次元解析など、ビジネスインテリジェンスのための機能が備わっています。

PostgreSQL

PostgreSQLはオープンソースのオブジェクトリレーショナルデータベース管理システムです。 Oracle Databaseで使われるPL/SQLを参考に実装されたビルトイン言語で、Windows、 Mac、Linux、UNIX、MSなどいくつものプラットフォームに対応しています。

ASP.NET

ASP.NETは動的なWebサイトやWebアプリケーション、そしてWebサービスを構築出来るようにする為、Microsoftによって開発されたウェブアプリケーション開発フレームワークです。

0グッド

1クリップ

投稿2018/07/04 05:25

前提として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 の設定を見比べてみても異なる部分が発見できません。

何か気づくポイントはございますでしょうか。
どうぞよろしくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

自己解決

SQL Server 2014 Management Studio において、以下の設定を変更することにより解決できましたのでご報告いたします。

1.対象のリンクサーバーのプロパティを開く
2.セキュリティタブを選択
3.「セキュリティコンテキストを使用しない」→「ログインの現在のセキュリティコンテキストを使用する」に変更

以上で動作するようになりました。

sazi 様をはじめ、ご検討くださいました皆様に御礼申し上げます。

投稿2018/07/04 08:26

ASP.NET

総合スコア24

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

以下は、接続先のDBの種類は異なりますが、同じことではないかと思います。
SQL Server:SQL ServerでORACLEのリンクサーバー作成時のエラーとその対処方法

要はwebシステムでSQL Serverにログインしているアカウントに対して、postgresのodbcドライバーが格納されているフォルダ若しくはファイルそのものに対する権限が無いのではないかという事です。

投稿2018/07/04 05:57

編集2018/07/04 06:04
sazi

総合スコア25195

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ASP.NET

2018/07/04 08:22

sazi 様 ご回答いただきまして誠にありがとうございます。 ODBCドライバーが格納されているフォルダーのアクセス権を確認しましたが、開発環境と本番環境は同じ状態でした。 さらに試行錯誤した結果、自己解決致しましたので、「解決方法」の欄で述べたいと思います。 誠にありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問