Подтвердить что ты не робот

Номер порта SQL Server

Мне интересно, какие порты используются движком базы данных SQL Server? Мне нужен такой номер порта для записи сценариев конфигурации, чтобы предоставить доступ к определенному порту компьютера, установленного с SQL Server, чтобы сделать его безопасным. Связанный с этим вопрос заключается в том, будет ли механизм базы данных SQL Server использовать один статический номер порта для обслуживания всех клиентских запросов или с использованием одного порта для каждого запроса?

Кстати: мой фон - это сервер SQL Server 2008.

спасибо заранее, Джордж

4b9b3361

Ответ 1

Экземпляр по умолчанию будет по умолчанию прослушивать tcp/1433. Возможно, он также прослушивает именованный канал (tcp/445), но я думаю, что в эти дни он должен быть явно включен.

Именованные экземпляры, такие как SQLEXPRESS, прослушивают динамический порт. Динамический порт разрешается клиентом через протокол разрешения SQL Server (также известный как SQL Browser), который прослушивает на udp/1434 1. Этот динамический порт выбирается при первом запуске и, как правило, остается неизменным в будущих перезапусках (хранится в реестре), но если есть конкуренция, SQL выберет новый порт.

Вы можете и обычно должны настраивать все экземпляры производственного SQL-сервера на использование статического порта. Это делает брандмауэр намного проще.

1 Единственная причина, по которой вы должны поместить именованный экземпляр в, скажем, строку соединения, так, чтобы клиент знал, чтобы спросить SSRP для динамического порта. Если это статический или иначе известный порт, вы можете просто указать клиенту Server=server.com:port, оставив имя экземпляра.

Ответ 2

1433 - это то, что SQL Server использует по умолчанию. Он имеет, по крайней мере, SQL Server 6.0.

Как правило, по соображениям безопасности вы не хотите открывать это для мира. Люди должны получать доступ к вашей БД только через приложение/веб-службу. Прямые соединения SQL Server по трубам изобилуют опасностями безопасности.

Все сеансы будут использовать этот порт (порт 80 для веб-сайта), но вы можете его изменить, используя инструмент настройки SQL Server, описанный здесь.

Ответ 3

Очень простой и программный способ - просто запросить столбец local_tcp_port в sys.dm_exec_connections:

select local_tcp_port from sys.dm_exec_connections where local_tcp_port is not null

Если это не возвращает никаких результатов, это, вероятно, связано с тем, что сервер находится на этом компьютере и нет соединений с другими машинами, поэтому нет подключений tcp.

В этом случае, если вы запрашиваете sqlcmd, просто поставьте "tcp:" перед именем сервера, например.

sqlcmd -E -S tcp:(local)

Или, если вы подключаетесь к SqlClient, вы можете добавить "Network Library = dbmssocn", чтобы заставить tcp, например.

string connStr = "Server=(local); Integrated Security=true; Network Library=dbmssocn";

Ответ 4

: 1433 по умолчанию. Тем не менее, этот порт можно изменить, и если вы имеете дело с несколькими экземплярами, каждый из них будет иметь другой порт.

Быстрый поиск Google включает следующую ссылку:

http://decipherinfosys.wordpress.com/2008/01/02/finding-the-port-number-for-a-particular-sql-server-instance/

... и я уверен, что у Technet будет больше информации.

Ответ 5

Иногда порт не является 1433

От http://www.php.net/manual/en/function.mssql-connect.php#76256 Зайдите в реестр, используя regedit.exe в HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\SQLEXPRESS\MSSQLServer\SuperSocketNetLib\Tcp.

Одна из пар nameValue имеет имя TcpPort и значение, которое является портом, который прослушивает SQL Server.