Несколько раз обыскав Интернет, чтобы найти лучший способ подключения к SQL Server через брандмауэр Windows, я все еще не нашел лучшего способа сделать это. У кого-нибудь есть гарантированный способ определить, на каких портах работает SQL, чтобы вы могли открыть их в брандмауэре Windows?
4 ответа
Если у вас запущен только один экземпляр SQL Server, и для него включен транспорт TCP/IP для нелокальных подключений, скорее всего, он будет прослушивать порт TCP по умолчанию: 1433.
Если у вас есть несколько экземпляров или какие-либо другие сложности, помимо «одного, экземпляра по умолчанию», то все может быть сложнее. Вам нужно будет установить порты для каждого экземпляра (по умолчанию они являются полуслучайными, что, как правило, не полезно для настройки брандмауэра), и вам также потребуется открыть службу браузера SQL (которая обычно прослушивает порт UDP 1434, хотя это тоже может быть перенастроен).
Существует довольно подробный набор заметок о SQL Server и брандмауэрах по адресу http://msdn.microsoft.com/en-us/library/cc646023.aspx.
Вам нужно будет запустить службу браузера для разрешения нестандартных экземпляров. Кроме того, открытие UDP 1434 позволит разрешать именованные экземпляры по имени вместо порта, поэтому вам не нужно будет использовать порты. Если вам неудобно открывать UDP 1434 на длительный срок или у вас есть администратор БД, который находится на месте и может подключаться локально, вы можете попросить их подключиться через 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
Порт по умолчанию для SQL Server - 1433
Может быть, полезно изменить порт по умолчанию для вашего экземпляра. Вы видели http://blogs.msdn.com/b/dataaccesstechnologies/archive/2010/03/03/running-sql-server-default-instance-on-a -non-default-or-non-standard-tcp-port-tips-for-make-application-connectivity-work.aspx?