none
外部のSSMSからサーバ名だけで接続できない RRS feed

  • 質問

  • お世話になります。

    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を固定ポートとして動的ポートを無効にしています。
    また、ファイアウォールも一時的に無効状態としています。

    解決方法をご存知の方がいらっしゃいましたら、ご教示頂けますでしょうか。

    2019年6月7日 6:43

すべての返信

  • 以下の記事に書いてありますが、サーバー名\インスタンス名で接続をした場合には、UDP 1434 (SQL Browser サービス) に接続して、指定したインスタンス名のポート番号を取得し、その後対象ポートに接続をする動作になるそうです。

    SQLServer2008Expressにリモート接続できない
    https://social.msdn.microsoft.com/Forums/ja-JP/419ecd4b-909a-4afe-9335-5b3a1fd663e5/sqlserver2008express12395125221251412540124882550932154123911236512394?forum=sqlserverja

    なので、

    > また、以下の記述ではアクセスNGでした。
    > ・IPアドレス\インスタンス名
    > ・サーバ名のみ
    > ・サーバ名\インスタンス名

    の一番上と一番下が NG なのは上に書いた理由ではないでしょうか?

    真ん中は分かりませんが。

    2019年6月7日 7:32
  • ご回答いただきありがとうございます。
    引用先を確認させて頂きました。

    ・IPアドレス\インスタンス名
    ・サーバ名\インスタンス名

    上記2パターンについては、SQL Server Browserサービスが無効に設定されているため
    接続できないことは、他スレッドも拝見して、認識させて頂きました。

    ・サーバ名のみ

    このパターンで繋がらない理由がわからず、苦戦しております。

    2019年6月7日 8:30
  • > ・サーバ名のみ
    > このパターンで繋がらない理由がわからず、苦戦しております。

    紹介した MSDN Forum のスレッドの Masayuki.Ozawa さんの回答を読みましたか?

    プロバイダによって違うようで、Microsoft OLE DB Provider for SQL Server の場合はダメだったそうです。条件・環境の違いによって結果が異なるのは当然かもしれません。認証方式によっても違うかも。

    なぜ「サーバ名だけで接続」にこだわるのか分かりませんが、名前付きインスタンスにリモート接続するなら、間違いのない、

    tcp:<server name>\<instance name>,1433

    とするべきと思いますけど。
    2019年6月7日 8:47
  • 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までお気軽にお問い合わせください。~

    2019年6月13日 8:42
    モデレータ