Я зіткнувся з цим, тому що у мене просто виникли проблеми зі створенням віддаленого з'єднання і я не міг зрозуміти, чому налаштування порту 1433 в брандмауері не виконує цю роботу. Зараз я, нарешті, маю повну картину, тому я подумав, що варто поділитися.
Перш за все, необхідно включити "TCP / IP" за допомогою диспетчера конфігурації SQL Server за протоколами для SQLEXPRESS!
Якщо використовується названий екземпляр ("SQLExpress" у цьому випадку), він прослуховуватиметься на динамічному порту. Щоб знайти цей динамічний порт, у вас є пара варіантів; назвати декілька:
перевірка ERRORLOG
SQL Server, розташований в '{MS SQL Server Path}\{MS SQL Server instance name}\MSSQL\Log'
(всередині ви знайдете рядок, подібний до цього: "2013-07-25 10:30:36.83 Server Server is listening on [ 'any' <ipv4> 51118]"
-> отже 51118 - це динамічний порт у цьому випадку.
перевірка реєстру: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\{MSSQL instance name}\MSSQLServer\SuperSocketNetLib\Tcp\IPAll
для мого випадку TcpDynamicPorts=51118
.
Правка : {MSSQL instance name}
це щось на кшталт:, MSSQL10_50.SQLEXPRESS
не тількиSQLEXPRESS
Звичайно, дозвіл цього TCP-порту в брандмауері та створення віддаленого з'єднання шляхом передачі: "x.x.x.x,51118"
(де xxxx - ip сервера) вже вирішує його в цей момент.
Але тоді я хотів підключитися віддалено, передавши ім'я екземпляра (наприклад:) x.x.x.x\SQLExpress
. Це коли послуга браузера SQL починає працювати. Це блок, який вирішує ім'я екземпляра в порт 51118. Служба браузера SQL прослуховує порт UDP 1434 (стандартний та статичний), тому мені довелося дозволити це також у брандмауері сервера.
Щоб трохи розширити фактичну відповідь: якщо хтось інший не любить динамічні порти і хоче статичний порт для свого екземпляра SQL Server, слід спробувати це посилання .