web-dev-qa-db-ja.com

IPおよび名前付きインスタンスによってSQL2012にリモートで接続できません

まず、Windowsファイアウォールが接続をブロックしていることをすでに知っています。どうすればよいかわかりません。 WFを完全にオフにすると、リモート接続が機能します。ポート1433での着信要求を許可するルールがすでにあり、それが正しいポートのようですが、よくわかりません。詳細については、こちらをご覧ください。

リモート専用サーバーにSQLServer 2008 R2があり、SSMSを介してリモートで接続するのに問題はありませんでした。しかし、SQL Server 2012をインストールしました。正常に動作しますが、デフォルトのインスタンスがSQL08で使用されているため、インストール中に名前付きインスタンスを作成する必要がありました。

そのボックスで実行されているASP.NET接続文字列は正常に機能し、問題なくsql12に接続します。難読化された接続文字列は次のとおりです。

Server = myserver\MSSQLSSERVER2012; Database = MyDB; User Id = Me; password = MyPaSS;

名前付きインスタンスがポート1433を使用しているようです。SQLブラウザがアクティブで実行されていることを確認しました。 SQLサーバーとポート1433を許可するWindowsファイアウォールの例外がありますが、それは以前に存在し、現在無効になっているSQL08でのみ機能するのかどうか疑問に思っています(これがSQL12で機能することを確認するにはどうすればよいですか)。

そのサーバーへのIPが1.2.3.4であるとしましょう

SSMSから、次のようにサーバーに接続しようとしました。

  1. 1.2.3.4
  2. 1.2.3.4\MSSQLSSERVER2012
  3. 1.2.3.4\MSSQLSSERVER2012,1433

何も機能しません。常にエラーは次のとおりです。

enter image description here

私はこのトピックに関する多くの記事を読みました、そしてそれらはすべて言います:

  1. sQLブラウザを有効にする(完了)
  2. windowsファイアウォールでポートを開きます(完了したようです??)

では、これを修正するためにWindowsファイアウォールで何をする必要があるかを正確に見つけるにはどうすればよいですか?すべてをオフにすることはできません。これはパブリックWebサーバーです。

5
HerrimanCoder

これは、SQLServerの機能が使用するポートのリストです。使用する機能/サービスによっては、追加のポートTCP/UDPを開く必要がある場合があります。また、[サーバーのプロパティ]> [接続]で、[このサーバーへのリモート接続を許可する]がオンになっていることを確認します。リモート接続の手順は2008年のものです。ファイアウォールをオフにしてリモートで接続できるとおっしゃっていたので、これは必要ないと思いますが、これを再確認しても問題はありません。

SQL Serverアクセス​​を許可するようにWindowsファイアウォールを構成する

リモート接続を有効にする

10
AAzami

簡単な答えは次のとおりです。

  1. SQL ServerのデフォルトインスタンスはTCPポート1433を使用します(そうしないでください!)。デフォルトインスタンスしかない場合は、それが必要な唯一のポートだと思います-SQLサーバークライアントは、ブラウザサービスを使用してデフォルトのインスタンスを検索しません。
  2. 名前付きインスタンスが使用されている場合、SQLブラウザが機能します。これはUDPポート1434でリッスンします。名前付きインスタンスのポート番号の要求に応答します。
  3. デフォルトでは、名前付きインスタンスは動的TCPポートを使用するため、起動するたびに異なるポートが使用されます。ブラウザがこれを分類しますが、ファイアウォールを通過するのは面倒です。
  4. 名前付きインスタンスのSQLServer構成マネージャーで固定ポート(たとえば、TCPポート1434など)を設定して、追加のポートを1つだけ開く必要がある)を設定しない理由はありません。名前付きインスタンスの場合。
7
SimonB

名前付きインスタンスを使用する場合、ポート1433を追加するだけでは不十分です。

あなたはこれを再現することができます:

  • 名前付きインスタンスをインストールする
  • インバウンドルール1433を追加
  • リモート接続を許可する

接続しようとすると、サーバーが見つからないというエラーが表示されます。ファイアウォールをオフにすると、すべてが機能するため、ファイアウォールを機能させるには別のポートが必要です。

ポート1434UDPを開き、SQLブラウザを起動する必要があります。これで動作します。

3
Rene

次の1つ以上で問題が解決し、リモートSQLサーバーに接続できるようになりました。

  1. Mssqlプロパティでリモート接続を許可する
  2. WinfirewallでMSSQLexeを有効にする
  3. WinfirewallでSQLブラウザを有効にする
  4. 明示的に開かれたポート1433tcpおよび1434udp
  5. サービスとして実行されているSQLブラウザ

これは私のために働いた:)

1
user5195526

上記のすべてを試してもエラーが発生する場合は、次のように、接続元のサーバーのホストファイルにIPとインスタンス名を追加してみてください。

111.11.111.1111 INSTANCENAME#IPおよびTOに接続しているサーバーのインスタンス名

これは、ポート、UDP、TCP/IPなどを開いて何日も経った後はうまくいきました。IPとの接続文字列を使用して接続できましたが、インスタンス名自体は接続できませんでした。ログイン情報が正しいこと、SQLブラウザが有効で実行されていることを確認しました。これがお役に立てば幸いです。

0
vbertini