У цій статті ми розберемося як дізнатися поточний TCP порт, на якому слухає і чекає підключення іменований або default екземпляр MS SQL Server, Як змінити порт підключення SQL Server на статичний / динамічний і як використовується служба Браузер SQL Server клієнтами при підключенні до SQL.

  • Default екземпляр SQL Server (MSSQLSERVER) працює на статичному порту TCP 1433. Саме до цього порту підключаються клієнти, або консоль SQL Server Management Studio (SSMS);
  • Іменовані екземпляри MSSQL і SQL Server Compact за замовчуванням налаштовані на використання динамічного TCP порту з діапазону RPC (49152 – 65535).

Динамічної порт означає, що номер порту, на якому приймає підключення екземпляр MSSQL призначається при запуску служби SQL Server. У більшості випадків, навіть після перезавантаження сервера, SQL Server почне слухати той же самий динамічний TCP порт, який був призначений до перезавантаження. Але якщо цей порт зайнятий, SQL Server запуститься на новому порту TCP (додаток, яке використовує SQL зазвичай без проблем отримає номер нового порту від служби SQL Server Browser, про це трохи нижче). Динамічний порти SQLServer зручні з точки зору простоти адміністрування декількох екземплярів SQL на одному сервері, але викликають безліч проблем, якщо у вашій мережі використовуються брандмауери.

  • Зміна номера TCP порту екземпляра SQL Server
  • TCP порти і служба SQL Server Browser

Зміна номера TCP порту екземпляра SQL Server

Ви можете переналаштувати ваш сервер так, щоб він слухав на іншому статичному TCP або динамічному порту. Як правило це потрібно, коли на одному SQL Server-e запушено кілька примірників, або у вас використовуються міжмережеві екрани.

Для управління портами підключення нам буде потрібно Менеджер конфігурацій SQL Server. Зазвичай це оснащення встановлюється разом з екземпляром MSSQL.

Запустіть SQL Server Configuration Manager і розгорніть секцію Конфігурація мережі SQL Server.

У моєму випадку на сервері встановлено всього 1 екземпляр MSSQL- NODE1, тому налаштовувати порти я буду для нього. У списку доступних протоколів для даного екземпляра є:

  • протокол Спільна пам’ять використовується для підключення з локального комп’ютера (з того, де встановлений екземпляр MSSQL). Відключати його не рекомендується;
  • Іменовані труби може використовуватися по протоколу TCP / IP, але його використання не несе особливої ​​вигоди, тому залишимо його вимкненим;
  • TCP / IP – саме тут настроюються мережеві параметри MSSQL.

Конфігурація мережі SQL Server

Клацніть двічі по TCP / IP.

настройки протоколу tcpip для sql server

На вкладці Protocol всього 3 параметри:

  • Увімкнено – переконайтеся, що протокол TCP / IP включений;
  • Підтримувати – частота перевірки того, що з’єднання ще актуально (в мілісекундах). Не міняйте цей параметр без необхідності;
  • Слухай усіх – неочевидна настройка, яка відповідає за секцію IPAll у вкладці IP Addresses. Якщо Listen All виставлена ​​в No, то секція IPAll буде ігноруватися.

на вкладці IP-адреси ви побачите перерахування всіх IP адрес машини (включаючи IPv6 і локальні) і відповідні їм настройки. Тут ви можете задати різні TCP порти для локального і зовнішнього адреси підключення, або різні порти для різних зовнішніх адрес (якщо у вас сервер з декількома мережевими інтерфейсами в різних сегментах).

Динамічні порти TCP на сервері SQL

Швидше за все ви захочете змінити порт відразу для всіх IP, тому потрібно змінити його секції IPAll.

IPAll настройка примірника sql server

Параметр TCP Dynamic Ports відповідає за використання динамічних портів.

  • пусте значення TCP Dynamic Ports відключає використання динамічних портів SQL Server;
  • 0 включає використання динамічних TCP портовіз діапазону RPC 49152 – 65535;
  • Виставляти тут конкретне значення не має сенсу – воно змінюється кожен раз при перезавантаженні примірника MSSQL.

щоб встановити статичний TCP порт для даного екземпляра SQL Server, вимкніть TCP Dynamic Ports, і задайте новий номер статичного порту в параметрі Порт TCP.

змінити номер порту sql server на інший статичний

Для застосування змін перезапустіть службу SQL Server. Зверніть увагу на вимкнуту службу SQL Server Browser.

перезапуск служби примірника sql server

Перевірте, що тепер до вашого екземпляру SQL можна підключитися через SSMS. Формат рядка підключення такої:

hostnameinstancename,PortNumber

sql server терміну підключення до статичного tcp порту

Підключитися без вказівки порту не вийде, оскільки SQL Browser вимкнений.

TCP порти і служба SQL Server Browser

До версії MSSQL 2000 можна було завантажувати одного примірника СУБД на один комп’ютер. Така можливість з’явилася в більш нових версіях MSSQL. служба Браузер SQL Server вперше з’явилася в SQL Server 2005 і використовувалася як посередник для розподілу підключень між різними екземплярами MSSQL, встановленими на одному комп’ютері.

Також SQL Server Browser відповідає за підключення до MSSQL (наприклад, з SQL Server Management Studio) без вказівки порту, наприклад testnode1node1. Служба SQL Server Browser дізнається номер поточного динамічного порту екземпляра з реєстру і повідомляє його клієнтові.

Якщо вимкнути службу SQL Server Browser, то для підключення до примірника необхідно вручну вказувати TCP порт. наприклад, testnode1node1, 1440.

При відключеною службі SQL Server Browser і використанні динамічних портів додатки не зможуть дізнатися номер порту, до якого потрібно звертатися.

Стандартні порти SQL Server

  • TCP 1433 – Стандартний порт SQL Server
  • UDP 1433 – порт, який використовується SQL Server Browser

Інші порти налаштовуються при установці / повторного налаштування сервісу. Так що за замовчуванням, Вам достатньо відкрити в файервол тільки два порти: тисячі чотиреста тридцять три TCP / UDP.

Якщо у вас використовуються найсуворіші налаштування фаєрвола, або якщо ви хочете максимально обмежити SQL Server, рекомендується відключити Dynamic Ports (виставити порожнє значення) і відключити службу SQL Server Browser.

Якщо ж ваші SQL Server’a знаходяться в публічному доступі, то буде хорошою ідеєю поміняти порт на нестандартний. Це не захистить від атак повністю, але знизить їх число.

Leave a Reply

Your email address will not be published. Required fields are marked *