
Windows ファイアウォールを介して SQL Server の接続を開くための最良の方法についてインターネットで何度か検索しましたが、まだ最良の方法を見つけていません。SQL がどのポートで実行されているかを確実に見つけて、Windows ファイアウォールで開くことができる方法はあるでしょうか?
答え1
実行中の SQL Server インスタンスが 1 つだけであり、非ローカル接続に対して TCP/IP トランスポートが有効になっている場合は、デフォルトの TCP ポート 1433 でリッスンしている可能性があります。
複数のインスタンスがある場合、または「単一の既定のインスタンス」を超えるその他の複雑な状況がある場合、状況はさらに複雑になる可能性があります。各インスタンスのポートを設定する必要があります (既定ではポートは半ランダムであるため、ファイアウォールの構成にはあまり役立ちません)。また、SQL ブラウザー サービスも開く必要があります (通常は UDP ポート 1434 でリッスンしますが、これも再構成できます)。
SQL Serverとファイアウォールに関するかなり詳細なメモが以下にあります。http://msdn.microsoft.com/en-us/library/cc646023.aspx
答え2
デフォルト以外のインスタンスを解決するには、ブラウザ サービスを開始する必要があります。また、UDP 1434 を開くと、ポートではなく名前で名前付きインスタンスを解決できるため、ポートを使用する必要はありません。UDP 1434 を長期間開くことに不安がある場合、またはオンサイトでローカルに接続できる DBA がいる場合は、SQL Server Mgmt Studio または SQLCMD 経由で接続し、次のようにサーバー接続を指定するように依頼できます。
tcp:サーバー名\インスタンス名
tcp をプレフィックスとして付けると、tcp 接続が強制されます。これが完了したら、名前付きインスタンスに接続し、sys.dm_exec_connections をクエリして、次のように非デフォルト インスタンスが実行されているポートを見つけることができます。
SELECT local_tcp_port FROM sys.dm_exec_connections WHERE session_id = @@SPID
答え3
SQL Serverのデフォルトポートは1433です