@IT会議室は、ITエンジニアに特化した質問・回答コミュニティ「QA@IT」に生まれ変わりました。ぜひご利用ください。
- PR -

OleDb接続エラー

投稿者投稿内容
TARO
会議室デビュー日: 2003/05/30
投稿数: 7
投稿日時: 2003-05-30 11:37
こんにちわ。
初歩的なところでつまづいているのですが、自分の力でどうにもならないので
ご協力をお願いしたいです

現在、データサーバ、Webサーバ、クライアントという環境で、
クライアントからWebサーバーのページを開いた際に、
データ接続に失敗しています。

データにはWindowsNTの統合セキュリティで接続しようとしているのですが、
その時点でクライアントのユーザ名の受け渡しが上手く
いってないように思われます

Webサーバ内でページを開いた場合には接続できているので、
Web.Configの設定も問題ないと思うのですが…。

何が原因なのかわかりません。
よい知恵があったらお貸し下さい。

ちなみに実装しようとしている環境は
LAN環境なので、外部からの接続は考えておりません
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2003-05-30 12:22
引用:

TAROさんの書き込み (2003-05-30 11:37) より:

現在、データサーバ、Webサーバ、クライアントという環境で、
クライアントからWebサーバーのページを開いた際に、
データ接続に失敗しています。

データにはWindowsNTの統合セキュリティで接続しようとしているのですが、
その時点でクライアントのユーザ名の受け渡しが上手く
いってないように思われます

Webサーバ内でページを開いた場合には接続できているので、
Web.Configの設定も問題ないと思うのですが…。


 Web.configだけでなく、IISの設定も変更していますか?「Windows統合認証」の後、「偽装」しなければ、IISのダミーユーザか、ASPNETで接続されますよ。MSDNで、「偽装」を検索すると、ヒットすると思います。
adelieworks
会議室デビュー日: 2002/05/25
投稿数: 12
投稿日時: 2003-05-30 12:36
こんにちは。
やや情報不足のようですので、少し質問させて下さい。
標題や文面、この会議室での発言ということから察するに、ASP.NETでWebアプリケーションを作成されているということですね?
"Webサーバー"は、具体的にはIISということで。

標題から察するに、データベースへの接続には、System.Data.OleDbネームスペースのクラスを使用しているようですが、接続先のデータベースの種類はなんでしょう?Oracle?JET(.mdb)?MS-SQL Server?(他にもいろいろありますが...)

また、"クライアント"とは、この場合、Webブラウザを指すのだと思いますが、LAN内の使用が前提ということで、IEを前提としていいのでしょうか?
"WindowsNTの統合セキュリティで接続"とのことですが、ブラウザとIIS間で、"統合Windows認証"が可能なのは、IEだけではないかと思います。

LANですが、NTドメイン、もしくは、ActiveDirectoryのどちらで構築されているでしょうか?
あるいは、ワークグループ管理ですか?

長々と書きましたが、発言される際は、もう少し緻密な情報がないと、回答する側も困ると思います。御自身ではあたりまえの環境でも、他の人にはわからないわけですから。

TARO
会議室デビュー日: 2003/05/30
投稿数: 7
投稿日時: 2003-05-30 12:59
Jittaさん、adelieworksさん返答ありがとうございます。

説明不足だったので補足させて頂きます

まず、データベースの種類ですがMSDEです。
また、LANの環境はNTドメイン、IISの設定ですが、
ディレクトセキュリティで匿名アクセスのチェックを外し、
統合Windows認証にチェックしている状態です

Web.Configの設定ですが、impersonateの設定はtrueにしています。

同一アカウントでログインしているにも関わらず、
Webサーバーではデータ接続できているのに、
別PCでは接続できません。

その他、IISの設定等で不備がありましたら、
ご指摘ください。
よろしくお願いします
ookubo
会議室デビュー日: 2003/04/14
投稿数: 7
投稿日時: 2003-05-30 13:51
ookuboです。

接続文字列の設定は大丈夫でしょうか?
サンプルです。
"Data Source=mySqlServer;Integrated Security=SSPI;Initial Catalog=myDB"

あとは、Webサイトのログイン時に
ユーザ名のところに、"ドメイン名\ユーザ名" の形式ログイン
してもだめでしょうか?
ookubo
会議室デビュー日: 2003/04/14
投稿数: 7
投稿日時: 2003-05-30 13:55
ookuboです。

接続文字列の設定は大丈夫でしょうか?
サンプルです。
"Data Source=mySqlServer;Integrated Security=SSPI;Initial Catalog=myDB"

あとは、Webサイトのログイン時に
ユーザ名のところに、"ドメイン名\ユーザ名" の形式ログイン
してもだめでしょうか?
TARO
会議室デビュー日: 2003/05/30
投稿数: 7
投稿日時: 2003-05-30 15:44
ookuboさん、返答ありがとうございます

接続文字列の設定はWebサーバよりページを開いた場合は
検索結果が表示されていますので大丈夫かと思います
ただ、別PCよりアクセスする場合に特別な設定が
必要であるならば何か教えていただきたく思います

また、別PCよりアクセスした際のユーザ名ですが、
Context.User.Identity.Nameで確認したところ、
ドメイン名/ユーザ名という形で取得できていたので、
その点については問題ないかと思います
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2003-05-30 18:06
引用:

TAROさんの書き込み (2003-05-30 15:44) より:

接続文字列の設定はWebサーバよりページを開いた場合は
検索結果が表示されていますので大丈夫かと思います
ただ、別PCよりアクセスする場合に特別な設定が
必要であるならば何か教えていただきたく思います


えっと、、、

[DB Server] - [Web Server] - [Client1]
_space_padding____________ - [Client2]

とあって、[Web Server]上でページを表示したときは接続でき、[Client1]からだとできない、ということでしょうか。

 今、[Web Server]兼[DB Server]の移し替えをやっていて、ちょうど上記のような状態なのですが、[Web Server]上のアセンブリをビルドしては確認しています。そこで発生したことですが、[Web Server]のアセンブリに対してデータベースへのアクセスを許可してやらないと、データベースにアクセスできませんでした。.NET Framework Configrationをチェックしてみてください。私のところは、とりあえずの状態なので、Full Trustにすると、アクセスできました。

#Windows Form Control DLL + HTML + Web Service という、複雑な環境だからかもしれませんけど

スキルアップ/キャリアアップ(JOB@IT)