質問者
外部のSSMSからサーバ名だけで接続できない

質問
-
お世話になります。
WindowsServer2016上にSQL Server 2016 Expressを構築しています。
外部からアクセスする際に、ポート番号とインスタンス名を省略して
サーバ名だけで接続を行いたいのですが、下記エラーが発生して接続ができません。SQL Server への接続を確立しているときにネットワーク関連またはインスタンス固有のエラーが発生しました。サーバーが見つからないかアクセスできません。インスタンス名が正しいこと、および SQL Server がリモート接続を許可するように構成されていることを確認してください。 (provider: TCP Provider, error: 0 - 待ち操作がタイムアウトになりました。) (.Net SqlClient Data Provider)
なお、以下の記述ではアクセスできます。
・IPアドレスのみ
・IPアドレス, ポート番号
・IPアドレス\インスタンス名, ポート番号
・サーバ名, ポート番号
・サーバ名\インスタンス名, ポート番号
・TCP:IPアドレス
・TCP:サーバ名また、以下の記述ではアクセスNGでした。
・IPアドレス\インスタンス名
・サーバ名のみ
・サーバ名\インスタンス名インスタンスは既定を選択して構築しています。
構成マネージャにてTCP/IPを有効化、1433を固定ポートとして動的ポートを無効にしています。
また、ファイアウォールも一時的に無効状態としています。解決方法をご存知の方がいらっしゃいましたら、ご教示頂けますでしょうか。
すべての返信
-
以下の記事に書いてありますが、サーバー名\インスタンス名で接続をした場合には、UDP 1434 (SQL Browser サービス) に接続して、指定したインスタンス名のポート番号を取得し、その後対象ポートに接続をする動作になるそうです。
SQLServer2008Expressにリモート接続できない
https://social.msdn.microsoft.com/Forums/ja-JP/419ecd4b-909a-4afe-9335-5b3a1fd663e5/sqlserver2008express12395125221251412540124882550932154123911236512394?forum=sqlserverjaなので、
> また、以下の記述ではアクセスNGでした。
> ・IPアドレス\インスタンス名
> ・サーバ名のみ
> ・サーバ名\インスタンス名の一番上と一番下が NG なのは上に書いた理由ではないでしょうか?
真ん中は分かりませんが。
-
> ・サーバ名のみ
> このパターンで繋がらない理由がわからず、苦戦しております。
紹介した MSDN Forum のスレッドの Masayuki.Ozawa さんの回答を読みましたか?
プロバイダによって違うようで、Microsoft OLE DB Provider for SQL Server の場合はダメだったそうです。条件・環境の違いによって結果が異なるのは当然かもしれません。認証方式によっても違うかも。
なぜ「サーバ名だけで接続」にこだわるのか分かりませんが、名前付きインスタンスにリモート接続するなら、間違いのない、
tcp:<server name>\<instance name>,1433
とするべきと思いますけど。 -
nisedoraさん、こんにちは。フォーラムオペレーターのHarukaです。
MSDNフォーラムにご投稿くださいましてありがとうございます。
SurferOnWwwさんの投稿はご参考になりましたでしょうか。
SQL Server Browser Serviceが有効になっていることを確認する必要があります。
インスタンス名はSQL Server Browser Serviceによって提供されるためです。
Express Editionの場合、インスタンス名はSQLEXPRESSで、Expressインスタンスはデフォルトで動的ポートを使用するように構成されています。
SQL Server Browserサービスが有効になると、ServerName \ InstanceNameというパターンを使用してSQL Serverインスタンスに接続できるようになります。
詳細については、レッスン2:別のコンピュータからの接続を参照してください。どうぞよろしくお願いいたします。
MSDN/ TechNet Community Support Haruka
ご協力くださいますようお願いいたします。また、MSDNサポートに賛辞や苦情がある場合は、MSDNFSF@microsoft.comまでお気軽にお問い合わせください。~