解決に導いてくださった方に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でも質問しています。

回答の条件
  • URL必須
  • 1人5回まで
  • 登録:
  • 終了:2006/09/25 10:12:59
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答8件)

id:hinetk No.1

回答回数516ベストアンサー獲得回数36

ポイント17pt

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

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

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

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

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

id:haul

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

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

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

2006/09/19 12:56:27
id:b-wind No.2

回答回数3344ベストアンサー獲得回数440

ポイント17pt

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


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

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

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

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

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

ぐらいでしょうか。

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

id:haul

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

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

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

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

・Web閲覧

・FTP接続

・PC-Anywhere

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

2006/09/19 13:02:46
id:un0 No.3

回答回数651ベストアンサー獲得回数32

ポイント16pt

>プログラム上ですと、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

以上取り急ぎ。

id:haul

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

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

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

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

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

■同一サーバの動作

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

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

EnterPriseMangerで接続できます。

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

■外部PCからの接続

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

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

2006/09/19 13:15:39
id:un0 No.4

回答回数651ベストアンサー獲得回数32

ポイント16pt

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

であれば、

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

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

> netstat -an

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

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

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

TCP1433を空けてもらうか。

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

URLはダミーです。

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

がんばってください。

id:haul

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

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

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

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

netsat -an

を実行してみました。

TCP

Local Addres 0.0.0.0:1433

Foreign Address 0.0.0.0:0

State LISTENING

になっていました。

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

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

2006/09/19 16:20:43
id:kibitaki No.5

回答回数53ベストアンサー獲得回数4

ポイント16pt

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

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

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

思いますが・・・)

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

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

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

URLはダミーです。

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

id:haul

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

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

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

2006/09/19 16:15:08
id:mj99 No.6

回答回数138ベストアンサー獲得回数38

ポイント16pt

http://support.microsoft.com/kb/884012/ja

上記記事かも。

英語記事を機械翻訳で日本語化したらしいので読みにくい記事ですが、SQLServer2000をSP3以上にアップグレードしろ、ということらしいです。

id:haul

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

下記サイトで、

SQL2000-KB884525-SP4-x86-JPN.EXE

というのをダウンロードして実行してみました。(あってますよね・・?)

しかし、

EnterPriseManagerでバージョン情報をみてみると、

Microsoft(R) Management Console 3.0

バージョン5.2 R2 (ビルド 3790.srv03_sp1_qfe.050504-1733:Service Pack 1)

となっている・・

SQL ServerグループのLOCALのプロパティをみると

オペレーティングシステム:Microsoft WindowsNT-5.2(3790)

製品バージョン 8.00.760(SP3)

となっている。。

あれ、SP4いれたのにSP4とは何処にも書いていない?ダウンロードしたのが間違ってるんでしょうか?

再起動してもかわりませんでした・・><


http://www.microsoft.com/downloads/details.aspx?displaylang=ja&a...

2006/09/19 16:32:05
id:mj99 No.7

回答回数138ベストアンサー獲得回数38

ポイント16pt

回答の6から連投です。

SP4をダウンロードして、インストールされたそうですが、、、

その後のセットアップは実行されましたか?

SQL2000-KB884525-SP4-x86-JPN.EXE

の実行は、圧縮ファイルの展開のみです

(もしかしたら、、インストール完了と表示されたかも。まぎらわしい)

デフォルトではC:\SQL2KSP4\あたりにsetup.exe(またはbat)があったと思うので、そいつを実行してください。

(実行済みだったらごめんなさい)

URLはダミーでhttp://q.hatena.ne.jp/1158630932

id:haul

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

解凍だとは思いませんでした。

バッチを実行してSP4になりました

製品バージョン 8.00.2039(SP4)

しかしながら、外部から接続できない・・

なんなんだこれはーー><

ホスティング会社のポンミスだったらキレそうだのぉ

2006/09/19 17:43:58
id:mj99 No.8

回答回数138ベストアンサー獲得回数38

ポイント16pt

再々度回答。

まだダメでしたか、、残念。

とりあえず、こんな記事見つけてきました。お試しください。

http://157.120.140.204/bbs/bbs_disp.aspx?forum_id=1&current_...

SP3を先にいれろ、らしいです。SP3の配布は終了しているのでSP3aを使用することになります。

----

あと、

Windows2003のセキュリティポリシーとSQLServerの関係も気になります。

具体的には、「リモート接続では空パスワードが許可されない」などの設定があります。

http://technet2.microsoft.com/WindowsServer/ja/Library/45acdbfd-...

とりあえず、パスワードを付けたアカウントを作って、ログインしてみてください。

----

これで限界かも。

id:haul

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

sp3は、インストール時に先にいれたので問題ないです。

リモート接続はパスワードいれて接続しているんですよね・・

■■■■続報■■■■

ホスティング会社がWindows2000serverでSQL-Server接続のテスト環境を設置しました。

⇒結果失敗

つ、つまり、OSの問題ではなくホスティング会社の問題ではないか・・・><

ホスティング会社が提示した今のサーバ環境は以下です。

2台のサーバが、SonicWall Pro 4060のDMZの下に配置してあり、それぞれローカルIPが振られています。インターネットからはLinkProofを通しえてNATがかかります。

この環境がいけないようですね。Windows2000Serverでもできないとするとサーバ外部でブロックされているということですよね。

ホスティング会社は引き続き調査を行うとのことですが、速く解決してくれー><

皆様、様々な解決策ありがとうございました。

上記環境の解決策がわかる方がいましたらご意見ください。

もう少し上記環境での解決策を募集したいと思います。

2006/09/21 10:20:04

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません