
Поискав в интернете несколько раз лучший способ открыть подключение SQL Server через брандмауэр Windows, я так и не нашел лучшего способа сделать это. Есть ли у кого-нибудь гарантированный способ узнать, на каких портах работает SQL, чтобы вы могли открыть их в брандмауэре Windows?
решение1
Если у вас запущен только один экземпляр SQL Server и на нем включен транспорт TCP/IP для нелокальных подключений, то, скорее всего, он будет прослушивать порт TCP по умолчанию: 1433.
Если у вас несколько экземпляров или любые другие осложнения выше "один экземпляр по умолчанию", то все может быть сложнее. Вам нужно будет задать порты для каждого экземпляра (по умолчанию они полуслучайные, что обычно не полезно для настройки брандмауэра) и нужно будет открыть службу браузера SQL (которая обычно прослушивает порт UDP 1434, хотя это тоже можно перенастроить).
Достаточно подробный набор заметок по SQL Server и брандмауэрам можно найти на сайтеhttp://msdn.microsoft.com/en-us/library/cc646023.aspx
решение2
Вам нужно будет запустить службу браузера для разрешения нестандартных экземпляров. Кроме того, открытие 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
решение3
Порт по умолчанию для SQL Server — 1433.
решение4
Может быть, будет полезно изменить порт по умолчанию вашего экземпляра. Вы видели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-making-application-connectivity-work.aspx?