Настройка порта в Microsoft SQL Server — важная задача для обеспечения стабильного подключения клиентов, особенно в средах с несколькими экземплярами или строгими настройками межсетевых экранов. В этой статье подробно описано, как узнать текущий TCP-порт экземпляра SQL Server, изменить его на статический или динамический, а также как работает служба SQL Server Browser для упрощения подключений.
Как работает порт в SQL Server
По умолчанию экземпляр MSSQLSERVER (default instance) использует статический порт TCP 1433. Клиенты, такие как SQL Server Management Studio (SSMS), подключаются к этому порту. Именованные экземпляры и SQL Server Compact настроены на использование динамических портов из диапазона RPC (49152–65535).
Динамический порт назначается при запуске службы SQL Server и обычно сохраняется после перезагрузки, если порт не занят. Если порт занят, SQL Server выбирает новый из диапазона RPC. Это удобно для администрирования нескольких экземпляров на одном сервере, но создает сложности в сетях с межсетевыми экранами, так как порт может меняться. Служба SQL Server Browser помогает клиентам определить текущий динамический порт.
Когда нужно изменить порт SQL Server
Изменение порта требуется в следующих случаях:
– На сервере работает несколько экземпляров SQL Server, и необходимо избежать конфликтов портов.
– Межсетевые экраны блокируют динамические порты, что затрудняет подключение.
– Требуется повысить безопасность, используя нестандартный порт вместо TCP 1433.
– Необходима настройка подключения к конкретному сетевому интерфейсу на сервере с несколькими интерфейсами.
Проверка текущего порта экземпляра
Чтобы узнать, какой порт использует экземпляр SQL Server:
1. Запустите Диспетчер конфигурации SQL Server (SQL Server Configuration Manager).
2. Перейдите в раздел Сетевая конфигурация SQL Server (SQL Server Network Configuration) → выберите нужный экземпляр (например, MSSQLSERVER или именованный, такой как NODE1).
3. Дважды щелкните по протоколу TCP/IP.
4. На вкладке IP Addresses найдите секцию IPAll. Параметр TCP Port указывает статический порт, а TCP Dynamic Ports — динамический (если активно).
Изменение порта SQL Server
Для настройки порта используйте Диспетчер конфигурации SQL Server. Следуйте этим шагам:
1. Откройте Диспетчер конфигурации SQL Server (SQL Server Configuration Manager).
2. Перейдите в Сетевая конфигурация SQL Server (SQL Server Network Configuration) → выберите экземпляр (например, NODE1).
3. В списке протоколов найдите TCP/IP и дважды щелкните по нему.
Параметры протокола TCP/IP
На вкладке Protocol доступны следующие настройки:
– Enabled: Убедитесь, что протокол TCP/IP включен (значение Yes).
– Keep Alive: Частота проверки активности соединения (в миллисекундах). Не изменяйте без необходимости.
– Listen All: Если установлено No, настройки в секции IPAll игнорируются, и порты настраиваются для каждого IP-адреса отдельно.
На вкладке IP Addresses:
– Перечислены все IP-адреса сервера (включая IPv4, IPv6 и локальный адрес 127.0.0.1).
– Для каждого IP можно задать отдельный порт. Например, можно настроить разные порты для локальных и внешних подключений.
– Для глобальной настройки используйте секцию IPAll.
Настройка статического порта
Чтобы задать статический порт:
1. В секции IPAll очистите поле TCP Dynamic Ports (установите пустое значение).
2. В поле TCP Port укажите нужный порт, например 1440.
3. Нажмите ОК.
Настройка динамического порта
Для использования динамического порта:
1. В секции IPAll установите в поле TCP Dynamic Ports значение 0.
2. Поле TCP Port оставьте пустым.
3. Нажмите ОК.
После изменения настроек перезапустите службу SQL Server:
1. В Диспетчере конфигурации SQL Server перейдите в Службы SQL Server (SQL Server Services).
2. Найдите службу, соответствующую вашему экземпляру (например, SQL Server (NODE1)).
3. Щелкните правой кнопкой мыши → Перезапустить (Restart) через PowerShell.
Restart-Service -Name "MSSQL$NODE1"
Проверка подключения
После изменения порта проверьте подключение через SQL Server Management Studio (SSMS). Формат строки подключения:
hostname\instancename,PortNumber
Пример:
testnode1\node1,1440
Если служба SQL Server Browser отключена, подключение без указания порта (например, testnode1\node1) не сработает. Убедитесь, что порт открыт в межсетевом экране.
Роль службы SQL Server Browser
Служба SQL Server Browser, появившаяся в SQL Server 2005, выполняет две ключевые функции:
– Распределяет подключения между несколькими экземплярами SQL Server на одном сервере.
– Сообщает клиентам текущий динамический порт именованного экземпляра, получая его из реестра.
Без SQL Server Browser:
– Клиенты должны вручную указывать порт в строке подключения (например, testnode1\node1,1440).
– При использовании динамических портов подключение становится невозможным, так как клиенты не узнают текущий порт.
Управление службой SQL Server Browser
Чтобы проверить состояние службы:
1. В Диспетчере конфигурации SQL Server перейдите в Службы SQL Server (SQL Server Services).
2. Найдите SQL Server Browser.
3. Убедитесь, что служба запущена, или включите ее через PowerShell:
Start-Service -Name "SQLBrowser"
Если вы используете статические порты и не планируете подключения без указания порта, SQL Server Browser можно отключить через PowerShell:
Stop-Service -Name "SQLBrowser"
Set-Service -Name "SQLBrowser" -StartupType Disabled
Настройка межсетевого экрана
Для корректной работы SQL Server откройте следующие порты в межсетевом экране:
– TCP 1433: Стандартный порт для default экземпляра.
– UDP 1434: Порт для SQL Server Browser.
– Пользовательский порт (например, TCP 1440), если вы изменили стандартный порт.
Пример команды для открытия порта 1440 в Windows Firewall:
netsh advfirewall firewall add rule name="SQL Server Custom Port" dir=in action=allow protocol=TCP localport=1440
Если используются строгие настройки межсетевого экрана:
– Отключите TCP Dynamic Ports (пустое значение).
– Отключите SQL Server Browser.
– Укажите статический порт и откройте его в межсетевом экране.
Дополнительные протоколы
В Диспетчере конфигурации SQL Server доступны другие протоколы:
– Shared Memory: Используется для локальных подключений. Не отключайте.
– Named Pipes: Альтернатива TCP/IP, но редко используется из-за отсутствия преимуществ. Рекомендуется оставить отключенным.
Настройка порта в Microsoft SQL Server позволяет оптимизировать подключение клиентов, обеспечить совместимость с межсетевыми экранами и повысить безопасность. Используйте Диспетчер конфигурации SQL Server для изменения порта, настройте межсетевой экран и решите, нужна ли служба SQL Server Browser. Эти шаги помогут создать стабильную и безопасную инфраструктуру для работы с SQL Server.