人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

解決に導いてくださった方に100ポイント差し上げます!Windows2003サーバのSQL-Server2000に外部から接続できない

Windows2000ServerにSQL-Server2000をいれて、サーバにグローバルIPを振り、外部からアクセスすると接続できました。
もう一台のパソコン(Windows2003Server)にSQL-Server2000をいれ、サーバにグローバルIPを振り、外部からアクセスすると接続できないんです。><

プログラム上ですと、SqlClient.SqlConnectionのOpenで失敗します。EnterPriseManagerで接続するとConnection.Open(Connect())で失敗します。
失敗する方には、ファイアウォール無効、外部ファイアフォールも無効になっています。

この二つのサーバの違いは、
・OSが違う
・サーバホスティング会社が違う
・成功する方は、TCP/IPのプロパティがグローバルIPで設定しています。
失敗する方は、ローカルIPになっています。
※失敗する方のグローバルIPはWebページが外部から閲覧できる為グローバルIPが届いていないということはない

なぜなんでしょうか><
OSによってセキュリティ強化がされていてできないということなんでしょうか?

※緊急を要する為教えてgooでも質問しています。


●質問者: haul
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:CONNECT IP open OS SQL
○ 状態 :終了
└ 回答数 : 8/8件

▽最新の回答へ

1 ● hinetk
●17ポイント

http://www.windows-world.jp/faq/-/20250.html

推測になりますが失敗する方のネット接続環境はポートがあいているでしょうか?

WEBページの閲覧は問題ないということで80ポートの転送は設定されているのだと推測できますが

SQLが使用するTCP1433(デフォルトは1433のようです)のポートの転送が出来ていない可能性があります。

グローバルIPを振っているルータの設定の見直しが必要かもしれません

◎質問者からの返答

レスありがとうございます。

一応ホスティング会社に確認をとったのですが、ポートの制限はかけていないといっていました。

ルータの方の設定の見直しを確認してみます。


2 ● b-wind
●17ポイント

結局のところ失敗する方はグローバルIPかローカルIPのどちらが振られているでしょうか?質問からは読み取れませんでした。


どちらでも考えられる理由として、

1.ルーターでフィルタリングされている。

ローカルIPであるなら考えられることとして、

2.ローカルIPだから外部からは接続できない

(Web はルーターでスタティックマスカレード等を行っている)

ぐらいでしょうか。

http://q.hatena.ne.jp/1158630932

◎質問者からの返答

レスありがとうございます。

サーバのパソコンのネットワーク接続のTCPIPのプロパティには、ローカルIPを振っています。

サーバの外側(ルータ?)側でグローバルIPの接続先を当サーバに指定しているといっていました。

一応外部からポートを使うものとして確認できているのは、

・Web閲覧

・FTP接続

・PC-Anywhere

考えられる理由というのがよくわからなかったんですが、具体的にどうすれば直るという意味なんでしょうか?


3 ● un0
●16ポイント

>プログラム上ですと、SqlClient.SqlConnectionのOpenで失敗します。

プログラムとは、WEBアプリケーションでしょうか。

その場合、WEBサーバー(アプリケーションサーバー)起動ユーザーからSQLServerへ接続に行きますので、このユーザーに権限があるかどうかを確認してみるとよいと思います。

WEBサーバー(APS)がコンソール起動か、サービス起動かによっても異なります。

コンソール起動ならログインユーザーの権限になる。

サービス起動ならサービスのプロパティを見れば確認できると思います。


>EnterPriseManagerで接続するとConnection.Open(Connect())で失敗します。

APSとEnterPriseManagerを実行したのは同一サーバー上(Windows2003サーバ)でしょうか。

もし前者(プログラム)と後者(EnterPriseManager)を実行している場所が異なるのであれば切り分けにはならないと思います。

同一であればEnterPriseManagerから繋がらないということは単純にSQLServerの設定が上手くいっていないと考えられます。

URLはダミーです。

http://q.hatena.ne.jp/1158630932

以上取り急ぎ。

◎質問者からの返答

レスありがとうございます。

認証に関しては、SQL-Server認証です。

一つ書き忘れていました。

できない方は、2台サーバでLANを組んでいます。

2台ともグローバルIPが振られています。

■同一サーバの動作

同一サーバ内でのEnterPriseManagerや、同一サーバ内のWebコンテンツからのデータベースアクセスはできます!

■LAN内の別サーバからの動作

EnterPriseMangerで接続できます。

WebサーバからLANを通してのデータベース接続もできます。

■外部PCからの接続

EnterPriseMangerもWebプログラムからも接続できません。

LAN内の環境では接続できるので、外部からのアクセスブロックがかかっていると思うのですが、穂スティング会社はブロックしていないというのでOSの問題なのかなぁと思っているんですが。。


4 ● un0
●16ポイント

プログラムはサーバサイドで実行されないようですね。

であれば、

外部PCでプログラムを実行して、netstatしてみてください。

ESTABLISHEDとなれば正常ですが、ならないと思います。

> netstat -an

TCP 外部PC:1404 サーバ:1433 ESTABLISHED

(外部PCのポートは任意というかランダム)

その場合は1の方の回答になりますね。

TCP1433を空けてもらうか。

ホスティング会社が対応してくれないならポートを変更するかになりますね。

URLはダミーです。

http://q.hatena.ne.jp/1158630932

がんばってください。

◎質問者からの返答

レスありがとうございます。

>外部PCでプログラムを実行して、netstatしてみてください。

ごめんなさいこの意味がわかりません。

データベースに接続できないサーバで

netsat -an

を実行してみました。

TCP

Local Addres 0.0.0.0:1433

Foreign Address 0.0.0.0:0

State LISTENING

になっていました。

ホスティング会社に電話してすべて開放状態にしてもらったんですが、やっぱりできない><

あと、ルータでマスカレード設定は行っていなくて、NATというのでグローバルIPをローカルIPに変換しているだけだといっていました


5 ● kibitaki
●16ポイント

該当問題でうっかりミスしやすい(初歩的な)ことのひとつが

認証モードの話なのですが、これは混合モードに設定されていますか?

(上の方でSQL-Server認証とはっきり書かれているので問題ないとは

思いますが・・・)

あとは、ODBC接続とADO接続のテストWEBページでも作成して、

SQLServer認証で両方ともきちんと動くのかなど、ポート関連以外で

疑われるところもチェックしてみると絞られると思います。

URLはダミーです。

http://q.hatena.ne.jp/1158630932

◎質問者からの返答

レスありがとうございます。

この辺の認証に関しては、

ローカルプログラムや、Lan内の別サーバからのSQL-Server認証で認証できることが確認できています。


1-5件表示/8件
4.前の5件|次5件6.
関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ