- PR -

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

投稿者投稿内容
小野@どっとねっとふぁん
ぬし
会議室デビュー日: 2001/10/30
投稿数: 402
投稿日時: 2004-08-31 15:34
MSDEをネットワーク経由で利用できるようにするインストールの例
http://www.gotdotnet.com/japan/student/column/moredotnet/moredotnet5.aspx

ドキュメントは一度インストールするとHDD内に展開されたはずです。
探してみると見つかるかも。

あと、MSDEのバージョンによってはデフォルトでネットワークからの
利用が許可になっていたものもあります。
バージョンがすべて同じかどうかは確認されたほうがよいかと。
ちづる
ベテラン
会議室デビュー日: 2004/07/27
投稿数: 72
投稿日時: 2004-08-31 17:36
>小野@どっとねっとふぁん さん
今見たところバージョンがSP3でした。ただ小野@どっとねっとふぁんさんが貼って頂いたリンク先はSP3aだったので、こちらを入れなおしてやってみます


と、ひとつ気になったことがあります。
XPと2003のログインユーザです。
2003はadministratorで、XPは所有者名(admini権限はもってます)なことです。
こういうところではじかれたりはしないのでしょうか?
小野@どっとねっとふぁん
ぬし
会議室デビュー日: 2001/10/30
投稿数: 402
投稿日時: 2004-08-31 19:04
引用:

ちづるさんの書き込み (2004-08-31 17:36) より:

と、ひとつ気になったことがあります。
XPと2003のログインユーザです。
2003はadministratorで、XPは所有者名(admini権限はもってます)なことです。
こういうところではじかれたりはしないのでしょうか?


saでつないでるんですよね。
じゃ、関係ないはずです。
tahakoda
ベテラン
会議室デビュー日: 2002/08/17
投稿数: 79
投稿日時: 2004-08-31 19:26
詳細はよく読んでませんが接続の問題では一般に

・SQLトレースを有効にする(ログイン要求がSQLServerに到達しているか判断)
・SQLエラーログの確認(起動時にポート1433を開くログを出していたような気が・・)
・各OSのイベントビューアを確認する。
・SQLServerがWindows認証ではどうか?
・SQLServerの設定の違い(待ちうけプロトコル、サービスパック、認証など)

最低このくらいは切り分けをしないとFWとかOSの要素が出てくると調査範囲が広くなり
途方にくれると思います。
holic
ベテラン
会議室デビュー日: 2004/08/24
投稿数: 74
投稿日時: 2004-09-01 00:41
引用:

インストール時に(?)ポートを動的に設定してあります
ただ、同時に横で2000serverで同じ環境(同じく動的です)だったのでnetstatで確認したところ、
2000には1433はいましたが、XPにはいませんでした。
ポートを強制的に開放するやりかたがわからないのです・・・。



ポートを LISTEN しているプロセスがいないということは、MSDE がコネクションを
受け付ける設定になっていないんでしょうね。

MSDE2000 のダウンロードサイトには、ReadmeMSDE2000A.htm というドキュメント
が添付されているようですから、それをよく読んで設定してみましょう。

ファイアウォールは、開いているポートに対する接続をいろいろな条件で遮断する
ための仕掛けですから、そもそも開いていないポートに対して設定をしても意味は
ありません。
nanbu
大ベテラン
会議室デビュー日: 2004/08/19
投稿数: 178
投稿日時: 2004-09-01 09:32
引用:

holicさんの書き込み (2004-09-01 00:41) より:

ポートを LISTEN しているプロセスがいないということは、MSDE がコネクションを
受け付ける設定になっていないんでしょうね。




MSDEでこのような設定できるのでしょうか。
気付かないうちにやっていたら、ハマりそうです。

ちづるさんへ。
XPからローカルへの接続は成功したとおっしゃていましたので、
的ハズレかもしれませんが、、、

接続はSQL認証モードとおっしゃいましたが、
MSDEのインストール時にSQL認証モードで
インストールされてますでしょうか。

具体的には、
 SECURITYMODE=SQL
の引数をsetup.exeの引数か、setup.iniに指定。

そうでなければ、Windows認証モードになります。







nodera
大ベテラン
会議室デビュー日: 2003/09/08
投稿数: 200
投稿日時: 2004-09-01 10:37
netstat -a -n で参照したら 0.0.0.0:1433 で表示されないでしょうか? -a スイッチだけだと全部表示されないかも。

あと、返されるエラーメッセージは「ユーザが存在しないか 接続が拒否されました」で合ってますか?「SQL Server が存在しないか、アクセスが拒否されました。」ではない?
(このメッセージであれば、http://support.microsoft.com/?kbid=328306 を参照。英語だけど。日本語ドキュメントもあるのかな?)

「ユーザーが・・・」だと接続はしているけど認証ではじかれているってイメージを受けるので、やっぱポートは開いてるのかなぁ。

他に試すこととしては、作ったアプリではなく、osqlとか標準のコマンドで接続しても同じなのかとか、もしMSDEではなくSQLServerが他のマシンにあるのであれば、SQLServer Enterprise Managerで設定を確認してみるとか。(ポートが開いてなかったら接続できないか。。)

ちなみに自分のところの開発で、SQLServer2000 + Windows2003という組み合わせで、ポート1433が待ち受け状態にないという現象が1度だけ確認されたことがあります(サービスは動作していました)。しかし、リブートしたら直ってしまったため、原因不明のまま終わってしまいました(^^;
ちづる
ベテラン
会議室デビュー日: 2004/07/27
投稿数: 72
投稿日時: 2004-09-01 11:19
>小野@どっとねっとふぁんさん
saです。
なんでこんなことを書いたかというと、知り合いにこの症状を伝えたら
「PCのユーザは?administratorと所有者名?それじゃないの?」と
言われたからです。
あとMSDEを入れなおしてみました。どうもインストール時にdisablenetworkprotocols=0が
抜けていたようです

>tahakodaさん
そうですね、確かめてみたいと思います
>>・SQLエラーログの確認(起動時にポート1433を開くログを出していたような気が・・)
このエラーログはLogディレクトリに吐かれるログでしょうか?
それ以外SQLログが見つけられませんでした・・・


>holicさん
MSDEを再インストールしなおしたらポートが開きました(1433)
ポートが開いてもXPは相変わらず拒否をしているのでトホホなのですが。


>nanbuさん
インストール時にSQL認証に設定しました。
接続文字列もSQL認証情報のみなので、Windows認証ではないと思います。

-------------------------------------------------------------
ためしにVB.NETで作成したアプリで2003、XPそれぞれに接続してみました。
windows2000→XP ---成功
windows2000→2003server ---成功
XP→2003server ---成功
2003→XP ---失敗

やはり2003とXPの間のやり取りがダメみたいです。

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