- PR -

[ASP.NET]他のDBサーバにSQL認証を行うと拒否される

投稿者投稿内容
ちづる
ベテラン
会議室デビュー日: 2004/07/27
投稿数: 72
投稿日時: 2004-09-01 11:34
追加です。
ASPで試してみました。

2003server→local ---成功
2003server→XP ---失敗
2003server→windows2000 ---失敗
XP→windows2000 ---成功

2003が外のDBへの参照ができないようです
おおさん
会議室デビュー日: 2002/11/22
投稿数: 3
投稿日時: 2004-09-01 14:19
MSDTC(トランザクション管理)は使用していますか?
MSDTCの認証で失敗してるかもです。
ちづる
ベテラン
会議室デビュー日: 2004/07/27
投稿数: 72
投稿日時: 2004-09-01 15:29
>おおさん
EnterPriseManagerを調べましたが、MSDTCは使用していませんでした。
分散型ではないけど、全て使用していません。
でも繋がらないのです・・・。
tahakoda
ベテラン
会議室デビュー日: 2002/08/17
投稿数: 79
投稿日時: 2004-09-01 17:02
EnterPriseManagerをお持ちでしたらSQLプロファイラを使用してログイン要求時の
トレースを取ってみてください。

あと他の方のレスでもありましたがEnterPriseManagerや「osql」などの接続テストは試されましたか?。
エラーログの内容は確認されましたか?。

またEnterPriseManagerからカレントの認証の設定は確認されましたか?。

SQLServer内での調査をせずASPなどでひたすら試しても事象解決には結びつきません。OSかアプリかの切り分けができないと他の方も的確なアドバイスはできないと思いますよ。
ちづる
ベテラン
会議室デビュー日: 2004/07/27
投稿数: 72
投稿日時: 2004-09-01 19:12
>tahakodaさん
SQLプロファイラを使用して2000からXPへのトレースをってみましたが失敗します
2003はEnterpriseManagerで2000から認識できています

カレント認証の確認はしました。SQL認証になっています。

接続テストですが、XPに対してはできません。2003に対してはできます。


しかし、2003もXPもASPを介すとDB接続はできません。
XPは全てがダメなので、2003と問題はちがう気もしますが、2003に関しては
VB.NETで作成したローカルアプリでもつながり、EnterpriseManagerでも繋がるのにも
かかわらずASPだと繋がらないということです。
tahakoda
ベテラン
会議室デビュー日: 2002/08/17
投稿数: 79
投稿日時: 2004-09-01 20:31
他の方も感じられているかと思いますが。。

当初は2000Server上のDBにはつながり、XP上のDBにつながらない
というお話でしたよね。

途中からこのスレに入ったからかもしれませんが「ASP」やら「2003」やらで
調査する意味がよくわかりません。
.NET接続で2000とXPの比較でよいのではないですか?。
解決のゴールはどこに設定されていますか?。

>>SQLプロファイラを使用して2000からXPへのトレースをってみましたが失敗します
何故失敗するんですか?。エラーメッセージはなんですか?。

>>接続テストですが、XPに対してはできません。
どういった原因でできないのですか?。エラーメッセージはなんですか?。

いろいろ調査すべき項目はありますがもう少しポイントを絞らないと
難しいと思いますよ。

エラーログもみました?。
ちづる
ベテラン
会議室デビュー日: 2004/07/27
投稿数: 72
投稿日時: 2004-09-02 10:59
>tahakodaさん
そうですね、私の言ってる事がすこしごちゃごちゃしてる所為で意味不明になってしまったことは申し訳ありません。
現状をきちんと書く必要がありますね。

当初、VB.NETでローカルアプリ、ASP.NETでWEBアプリを作成していました。
そのときはDBサーバはwindows2000に構築したDBに繋いでいました。
ASP.NETは最初XP内の端末に存在するDBすら認識しなかったのですが、いろいろ
いじってるうちに繋がるようになりました(なぜなったか不明です。予想としてウイルスソフトのFWを解除やユーザアカウントにsaを追加したりしてるうちになおってしまい、それらを
元に戻しても(ユーザアカウントを削除)繋がるようになってしまったので、解決原因は
不明なままです)

実際の客先の環境が2003server(アプリサーバもDBサーバも2003)な為に、実際に2003serverにDBを設定して、そこに接続してみようという話になりました。
ただ、今この環境に2003serverが2台は無いので、とりあえず
XPをDBサーバ、2003をアプリサーバでASPを動かしてみようとなったのです。
そこでここで記述してるように2003→XPへのDB接続で「ユーザが存在しないか 接続が拒否されました」といったエラーが出て接続ができませんでした。
記述してるコード自体は、2000に繋げていた事を考えると間違えてはいないと思います。
(全てユーザはsaですし、DBにはいます)
すぐにOSのFWかな?と気づき調べてみましたが、FW自体は切ってありました。
それまで2000に繋いでいたVB.NETで作成したアプリを思い出し、それでも
繋ぐDB先をXP,2003それぞれのDBに変えてテストしたところ、それも繋がらないという
事実が判明しました。

皆様のご意見でポートを調べたところポート自体が開いていないことが判明しました。
(XPと2003)
小野@どっとねっとふぁんさん の助言でMSDEを入れなおしたところ、
XPと2003はポートがきちんと開かれVB.NETのアプリには関しては2000から2003に接続できるようになりました(ちゃんと調べたところXPは×でした。先に投稿した内容に間違いがありました。申し訳ありません)。
アプリを2003において実験したところXPには繋がりませんでした
(2003→2000は繋がりました)

では本題のWEBアプリはどうだったかというと
XPをアプリサーバ、2003をDBサーバにした場合は接続ができました。
ところが、逆パターン(2003をアプリサーバ、XPをDBサーバ)にしたところ、
「ユーザが存在しないか、アクセスが拒否されました」と接続できませんでした。
それではと、(2003をアプリサーバ、2000をDBサーバ)にしてみましたが、やはり上記と
同じように接続に失敗してしまいました。
今の現状の問題は二点あります。

・VBでできたいたのにもかかわらずASPになった際になぜ2003から他の端末のDBへの接続が拒否されるのか
・なぜ他の端末からXPのDBへの接続が拒否されるのか(VBとASPともに)


本来は2003が2台あって、それどれをアプリサーバ、DBサーバにして検証するべきなのですが、
2003が一台しかない為に、上記のようなややこしい設定になっています。
近いうちに別端末に2003serverを入れて、実際の構築環境で試してみようとは
考えています


>何故失敗するんですか?。エラーメッセージはなんですか?。
>どういった原因でできないのですか?。エラーメッセージはなんですか?。
この「何故失敗する」のかがわからなくて右往左往しています。
エラーメッセ-ジは上記の同じ「ユーザが存在しないかアクセスが拒否されました」です。


tahakoda
ベテラン
会議室デビュー日: 2002/08/17
投稿数: 79
投稿日時: 2004-09-02 13:24
要は問題としては
2003→XPへのDB接続で「ユーザが存在しないか 接続が拒否されました」というエラーが
でることなんですよね。

以下の点は確認すべきです。

・2003→XPへ PING XPのIP
・2003→XPへ PING XPのコンピュータ名
・2003→XPへ XP上の共有ファイルなどが見える?
・2003→XPへ ODBC接続テスト(名前つきパイプを使っているか?)
・2003→XPへ EnterPriceMangerでDBを登録、接続できるか
・2003→XPへ クエリアナライザとかでSQLが実行可能か?
・2003→XPへ 混合認証にしてどうか?

なんかアプリを色々と試されてますがASPとASP.NETは技術的に別モノですよね?。
あとVB.netはIISは使いませんよね?。ASPにしてもODBC使う、使わないもありますし。

他の方も何度も言ってますがOSとDBの調査を全部つぶしてから
アプリ側だと思いますよ。
あとアプリ側にしても「この技術だとつながらない」ではなく接続文字列、IIS設定など
詳細に書いたほうが良いと思います。
切り分けた上で該当のスレッドに投稿され直してはいかがですか?。
(.NETかWindowsかDBか)

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