まず、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から、次のようにサーバーに接続しようとしました。
何も機能しません。常にエラーは次のとおりです。
私はこのトピックに関する多くの記事を読みました、そしてそれらはすべて言います:
では、これを修正するためにWindowsファイアウォールで何をする必要があるかを正確に見つけるにはどうすればよいですか?すべてをオフにすることはできません。これはパブリックWebサーバーです。
これは、SQLServerの機能が使用するポートのリストです。使用する機能/サービスによっては、追加のポートTCP/UDPを開く必要がある場合があります。また、[サーバーのプロパティ]> [接続]で、[このサーバーへのリモート接続を許可する]がオンになっていることを確認します。リモート接続の手順は2008年のものです。ファイアウォールをオフにしてリモートで接続できるとおっしゃっていたので、これは必要ないと思いますが、これを再確認しても問題はありません。
簡単な答えは次のとおりです。
名前付きインスタンスを使用する場合、ポート1433を追加するだけでは不十分です。
あなたはこれを再現することができます:
接続しようとすると、サーバーが見つからないというエラーが表示されます。ファイアウォールをオフにすると、すべてが機能するため、ファイアウォールを機能させるには別のポートが必要です。
ポート1434UDPを開き、SQLブラウザを起動する必要があります。これで動作します。
次の1つ以上で問題が解決し、リモートSQLサーバーに接続できるようになりました。
これは私のために働いた:)
上記のすべてを試してもエラーが発生する場合は、次のように、接続元のサーバーのホストファイルにIPとインスタンス名を追加してみてください。
111.11.111.1111 INSTANCENAME#IPおよびTOに接続しているサーバーのインスタンス名
これは、ポート、UDP、TCP/IPなどを開いて何日も経った後はうまくいきました。IPとの接続文字列を使用して接続できましたが、インスタンス名自体は接続できませんでした。ログイン情報が正しいこと、SQLブラウザが有効で実行されていることを確認しました。これがお役に立てば幸いです。