Как узнать ip адрес sql сервера
Перейти к содержимому

Как узнать ip адрес sql сервера

  • автор:

iP соединения с MS SQL

Добрый день, не могу найти возможность получения IP сетевого адаптера клиента, с которого был отправлен запрос к MS SQL серверу, при условии того что у клиента несколько сетевых интерфейсов. PS. В sqlconnection statistics подобного нет, может на сервере есть нужная таблица.

Отслеживать
user177221
задан 23 апр 2015 в 8:59
945 10 10 серебряных знаков 21 21 бронзовый знак

2 ответа 2

Сортировка: Сброс на вариант по умолчанию

На стороне сервера:

SELECT client_net_address FROM sys.dm_exec_connections WHERE Session_id = @@SPID; 

Отслеживать
ответ дан 23 апр 2015 в 9:05
user177221 user177221

--current session SELECT CONNECTIONPROPERTY('net_transport') AS [NET Transport], CONNECTIONPROPERTY('protocol_type') AS [Protocol Type], CONNECTIONPROPERTY('auth_scheme') AS [Auth Scheme], CONNECTIONPROPERTY('local_net_address') AS [Local Net Address], CONNECTIONPROPERTY('local_tcp_port') AS [Local TCP Port], CONNECTIONPROPERTY('client_net_address') AS [Client NET Address] -all session SELECT * FROM sys.dm_exec_connections 

Отслеживать
ответ дан 23 апр 2015 в 9:06
1,938 1 1 золотой знак 11 11 серебряных знаков 9 9 бронзовых знаков

  • c#
  • sql
  • visual-studio
  • sql-server
    Важное на Мете
Похожие

Подписаться на ленту

Лента вопроса

Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.

Дизайн сайта / логотип © 2024 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2024.3.8.5973

Как проверить, прослушивает ли SQL Server динамический или статический порт

В этой статье описывается, как определить, прослушивает ли именованный экземпляр Microsoft SQL Server динамический и статический порт. Эти сведения могут быть полезны при устранении различных проблем с подключением, связанных с SQL Server.

По умолчанию экземпляр SQL Server с именем настроен для прослушивания динамических портов. Он получает доступный порт из операционной системы. Вы также можете настроить SQL Server именованные экземпляры для запуска с определенного порта. Это называется статическим портом. Дополнительные сведения о статических и динамических портах в контексте SQL Server см. в разделе Статические и динамические порты.

Используйте следующую процедуру, чтобы определить, прослушивает ли SQL Server именованный экземпляр динамический порт или статический порт.

Вариант 1. Использование диспетчер конфигурации SQL Server

  1. В диспетчер конфигурации SQL Server разверните узел SQL Server Конфигурация сети, разверните пункт Протоколы в поле Имя экземпляра, а затем дважды щелкните TCP/IP.
  2. В разделе Свойства TCP/IP выберите Протокол.
  3. Проверьте значение в параметре Прослушивание всех . Если задано значение Да, перейдите к шагу 4. Если для него задано значение Нет, перейдите к шагу 6.
  4. Перейдите в раздел IP-адреса и прокрутите страницу свойств TCP/IP вниз.
  5. Проверьте значения в разделе ВСЕ IP-адреса и используйте следующую таблицу, чтобы определить, прослушивает ли именованный экземпляр динамический или статический порт.
Динамические порты TCP TCP-порт SQL Server экземпляр, использующий динамические или статические порты?
«Пустой». «Пустой». Динамические порты
«Пустой». Динамические порты — динамический порт, который SQL Server в настоящее время прослушивает.
Одновременный прослушивание динамического и статического портов
Динамические порты TCP TCP-порт SQL Server экземпляр, использующий динамические или статические порты?
«Пустой». «Пустой». Динамические порты
«Пустой». Динамические порты — это динамический порт, который SQL Server в настоящее время прослушивает.
Одновременный прослушивание динамического и статического портов

Значение 0 в динамических портах TCP указывает, что именованный экземпляр в настоящее время не запущен и настроен для динамических портов. После запуска экземпляра поле значения будет отражать динамический порт, используемый экземпляром в данный момент.

Вариант 2. Использование PowerShell

  1. Выполните следующий скрипт в интегрированной среде сценариев PowerShell. В окне Консоли отображаются все соответствующие tcp/IP-адреса для всех экземпляров SQL Server (SQL Server 2014–SQL Server 2019), установленных в системе.
clear Write-Host "SQL Server 2019" Write-Host "=====================" Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL15.*\MSSQLServer\SuperSocketNetLib\Tcp" | Select-Object -Property Enabled, KeepAlive, ListenOnAllIps,@> |Format-Table -AutoSize Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL15.*\MSSQLServer\SuperSocketNetLib\Tcp\IP*\" | Select-Object -Property TcpDynamicPorts,TcpPort,DisplayName, @>, IpAddress |Format-Table -AutoSize Write-Host "SQL Server 2017" Write-Host "=====================" Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL14.*\MSSQLServer\SuperSocketNetLib\Tcp" | Select-Object -Property Enabled, KeepAlive, ListenOnAllIps,@> |Format-Table -AutoSize Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL14.*\MSSQLServer\SuperSocketNetLib\Tcp\IP*\" | Select-Object -Property TcpDynamicPorts,TcpPort, DisplayName, @>, IpAddress |Format-Table -AutoSize Write-Host "SQL Server 2016" Write-Host "=====================" Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL13.*\MSSQLServer\SuperSocketNetLib\Tcp" | Select-Object -Property Enabled, KeepAlive, ListenOnAllIps,@> |Format-Table -AutoSize Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL13.*\MSSQLServer\SuperSocketNetLib\Tcp\IP*\" | Select-Object -Property TcpDynamicPorts,TcpPort, DisplayName, @>, IpAddress |Format-Table -AutoSize Write-Host "SQL Server 2014" Write-Host "=====================" Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL12.*\MSSQLServer\SuperSocketNetLib\Tcp" | Select-Object -Property Enabled, KeepAlive, ListenOnAllIps,@> |Format-Table -AutoSize Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL12.*\MSSQLServer\SuperSocketNetLib\Tcp\IP*\" | Select-Object -Property TcpDynamicPorts,TcpPort, DisplayName, @>, IpAddress |Format-Table -AutoSize 
Динамические порты TCP TCP-порт SQL Server экземпляр, использующий динамические или статические порты?
«Пустой». «Пустой». Динамические порты
«Пустой». Динамические порты — это динамический порт, прослушиваемый SQL в настоящее время.
Одновременный прослушивание динамического и статического портов
Динамические порты TCP TCP-порт SQL Server экземпляр, использующий динамические или статические порты?
«Пустой». «Пустой». Динамические порты
«Пустой». Динамические порты — это динамический порт, который SQL Server в настоящее время прослушивает.
Одновременный прослушивание динамического и статического портов

Значение 0 в динамических портах TCP указывает, что именованный экземпляр в настоящее время не запущен и настроен для динамических портов. После запуска экземпляра поле значения будет отражать динамический порт, используемый экземпляром в данный момент.

См. также

  • Проблема с согласованной проверкой подлинности 0400.
  • Настройка сервера для прослушивания определенного TCP-порта
  • Свойства TCP/IP (вкладка «IP-адреса»)

Свойства TCP/IP (вкладка «IP-адреса»)

Чтобы настроить параметры протокола TCP/IP для определенного IP-адреса, используйте диалоговое окно Свойства TCP/IP (вкладка «IP-адреса») . Для всех адресов одновременно посредством выбора пункта Все IP можно настроить только Динамические TCP-порты и TCP-порт.

Изменения вступят в силу после перезапуска SQL Server. Сведения о запуске и остановке службы обозревателя SQL см. в разделе Запуск и остановка службы обозревателя SQL Server.

Статические и Динамические порты

Экземпляр SQL Server по умолчанию прослушивает входящие соединения через порт 1433. Порт может быть изменен по соображениям безопасности или в силу требований клиентского приложения. По умолчанию именованные экземпляры (включая SQL Server Express) настроены на прослушивание динамических портов. Чтобы настроить статический порт, оставьте поле Динамические TCP-порты пустым и укажите доступный номер порта в поле TCP-порт . Дополнительные сведения об открытии портов в брандмауэре см. «Настройка Брандмауэра Windows для разрешения доступа к SQL Server» в электронной документации по SQL Server.

Динамические порты

При запуске, когда экземпляр SQL Server настроен для прослушивания динамических портов, он проверяет наличие в операционной системе доступного порта и открывает для него конечную точку. Входящие соединения должны указывать этот номер порта. Так как номер порта может меняться при каждом запуске SQL Server, в состав SQL Server входит служба обозревателя SQL Server, которая обеспечивает наблюдение за портами для контроля портов и направляет входящие соединения на текущий порт этого экземпляра. Использование динамических портов усложняет соединение SQL Server через брандмауэр, т. к. при перезапуске SQL Server номер порта может измениться и параметры брандмауэра потребуется изменить. Чтобы предотвратить проблемы при соединении через брандмауэр, настройте SQL Server для использования статического порта.

Параметры

Активно
Указывает на то, что IP-адрес активен на компьютере. Недоступно для параметра Все IP.

Enabled
Если для свойства Прослушивать все в диалоговом окне Свойства TCP/IP (вкладка «Протокол») установлено значение Нет, это свойство указывает на то, что SQL Server прослушивает IP-адрес. Если для свойства Прослушивать все в диалоговом окне Свойства TCP/IP (вкладка «Протокол») установлено значение Да, это свойство не учитывается. Недоступно для параметра Все IP.

IP-адрес;
Позволяет просматривать или изменять IP-адрес, используемый этим соединением. Показывает используемый компьютером IP-адрес и петлевой IP-адрес, 127.0.0.1. Недоступно для параметра Все IP. IP-адрес может иметь формат IPv4 или IPv6.

Все IP
Пусто, если динамические порты не включены. Для использования динамических портов присвойте параметру значение 0.

Для параметра Все IPотображается номер используемого динамического порта.

Динамические TCP-порты
Позволяет просматривать или изменять порт, прослушиваемый SQL Server. По умолчанию экземпляр SQL Server по умолчанию прослушивает порт 1433.

Ядро СУБД может прослушивать несколько портов на одном IP-адресе. Порты в списке разделяются запятыми в следующем формате: 1433,1500,1501. Длина этого поля ограничена 2047 символами.

Для настройки прослушивания нескольких портов на одном IP-адресе параметру Прослушивать все должно быть присвоено значение Нетна вкладке Протоколы диалогового окна Свойства TCP/IP . Дополнительные сведения о том, как настроить ядро СУБД для прослушивания нескольких TCP-портов, см. в электронной документации на SQL Server.

Добавление или удаление IP-адресов

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

Дополнительные разделы электронной документации

Изучите статьи MSDN Настройка сервера для прослушивания указанного TCP-порта (диспетчер конфигурации SQL Server) и Настройка компонента Database Engine на прослушивание нескольких портов TCP.

Как узнать IP-адрес или имя сервера в SQL Server 2005

Если вы хотите узнать IP-адрес сервера в SQL Server, вы можете использовать следующий запрос:

Скопировать код

SELECT client_net_address FROM sys.dm_exec_connections WHERE session_id = @@SPID;

А для получения IP-адреса сервера в MySQL вам будет полезен такой код:

Скопировать код

SELECT SUBSTRING_INDEX(HOST, ':', 1) AS ServerIPAddress FROM information_schema.processlist WHERE >Оба сниппета кода предоставляют IP-адрес текущего сервера. Учтите, что вы должны использовать запрос, соответствующий СУБД, с которой вы работаете.

Получение детальной информации о соединениях сервера

В SQL Server есть возможность получить расширенную информацию о соединениях, используя следующий скрипт:

Скопировать код

SELECT net_transport, protocol_type, auth_scheme, local_net_address, -- Здесь находится IP-адрес вашего сервера local_tcp_port, client_net_address FROM sys.dm_exec_connections WHERE session_id = @@SPID;

Данный скрипт позволяет анализировать текущее соединение и устанавливать IP-адрес сервера ( local_net_address ).

Управление доступом и обеспечение безопасности

Для работы с sys.dm_exec_connections требуются права VIEW SERVER STATE . Используйте следующую команду с осторожностью:

Скопировать код

GRANT VIEW SERVER STATE TO [YourLogin];

Не забывайте об обеспечении безопасности: избегайте команд, таких как xp_cmdshell , которые могут увеличить уровень угрозы для системы.

Определение идентификатора сервера

Информация о имени сервера может быть так же важной, как и информация о его IP. Вы можете использовать @@SERVERNAME или функцию SERVERPROPERTY для получения такой информации:

Скопировать код

SELECT @@SERVERNAME AS Server_Name; -- или SELECT SERVERPROPERTY('MachineName') AS Server_Machine_Name;

Данные функции предлагают различные способы идентификации сервера.

Создание хранимой процедуры для извлечения IP-адреса

Создание хранимой процедуры сделает задачу получения IP-адреса значительно проще:

Скопировать код

CREATE PROCEDURE GetServerIPAddress AS BEGIN SELECT local_net_address FROM sys.dm_exec_connections WHERE session_id = @@SPID; END;

Запросив EXEC GetServerIPAddress , вы сможете легко определить IP-адрес сервера.

Разбор сетевой информации

Изучив свойства net_transport , local_tcp_port и auth_scheme , вы можете более полно осознать специфику сетевого взаимодействия.

Обработка адреса с учетом деталей

При работе с именами хостов в SQL Server вам могут понадобиться функции CHARINDEX и LEFT :

Скопировать код

SELECT LEFT(client_net_address, CHARINDEX(':', client_net_address) – 1) AS JustIPAddress FROM sys.dm_exec_connections;

Таким образом вы получите только IP-адрес, без лишних деталей.

Особенности работы с SQL Server 2005

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

Визуализация

SQL-запрос выполняющий получение IP-адреса сервера можно представить как взаимодействие с базой данных:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *