Служба обозревателя SQL Server

Изменения: 14 апреля 2006 г.

Обозреватель SQL Server выполняется как служба Windows. Обозреватель SQL Server прослушивает входящие запросы на ресурсы Microsoft SQL Server и предоставляет сведения об экземплярах SQL Server, установленных на компьютере. Обозреватель SQL Server предназначен для выполнения трех задач:

  • просмотра списка доступных серверов;
  • соединения с нужным экземпляром сервера;
  • соединения с конечными точками через выделенное административное соединение (DAC).

Для каждого экземпляра компонента Database Engine и служб SSAS служба «SQL Server, обозреватель» (sqlbrowser) выдает имя и номер версии экземпляра. Обозреватель SQL Server устанавливается вместе с Microsoft SQL Server 2005, обслуживая также и предыдущие версии SQL Server, работающие на том же компьютере (начиная с версии Microsoft SQL Server 7.0).

Обозреватель SQL Server настраивается в ходе установки либо в средстве настройки контактной зоны, а управляется с помощью диспетчера конфигурации SQL Server. По умолчанию служба «SQL Server, обозреватель» запускается автоматически:

  • при обновлении установки;
  • при установке параллельно с экземпляром SQL Server 2000;
  • при установке в кластере;
  • при установке именованного экземпляра выпусков SQL Server 2005 Enterprise Edition, Standard Edition или Workgroup Edition;
  • при установке именованного экземпляра служб Analysis Services.

Историческая справка

До версии Microsoft SQL Server 2000 на компьютер мог быть установлен только один экземпляр SQL Server. SQL Server прослушивал входящие запросы на порту 1433, назначенном для SQL Server Комитетом по цифровым адресам в Интернете (IANA). Порт может прослушиваться только одним экземпляром SQL Server, поэтому, когда в SQL Server 2000 была введена поддержка нескольких экземпляров SQL Server, для прослушивания UDP-соединений по порту 1434 был разработан протокол SQL Server SSRP. Эта служба прослушивания в ответ на запросы клиентов возвращала имена установленных экземпляров и порты или именованные каналы, которые им соответствовали. Чтобы избавиться от ограничений, налагаемых службой SSRP, в SQL Server 2005 она была заменена службой «SQL Server, обозреватель».

Как работает служба «SQL Server, обозреватель»

Если для SQL Server разрешено использование протоколов TCP/IP и VIA, то при запуске экземпляра SQL Server серверу назначается порт TCP/IP. Если включен протокол именованных каналов, SQL Server прослушивает указанный именованный канал. Этот порт, или «канал», используется конкретным экземпляром для обмена данными с клиентскими приложениями. Экземпляру по умолчанию при установке назначается TCP-порт 1433 и канал \sql\query, но затем эти значения могут быть изменены администратором сервера при помощи диспетчера конфигурации SQL Server. Поскольку порт или канал может использоваться только одним экземпляром SQL Server, именованным экземплярам, включая SQL Server Express, назначаются другие номера портов и имена каналов. По умолчанию, если и именованные экземпляры, и SQL Server Express настроены на работу с динамическими портами, это означает, что доступный порт назначается при запуске SQL Server. При необходимости экземпляру SQL Server может быть назначен конкретный порт, и при подключении клиенты смогут указать именно его. Но если порт назначается динамически, то он может измениться в любой момент после перезапуска SQL Server, поэтому клиент может и не знать правильного номера порта.

При запуске обозреватель SQL Server запускается с использованием UDP-порта 1434. Обозреватель SQL Server считывает данные из реестра, определяет все экземпляры SQL Server на данном компьютере и назначает для них порты и именованные каналы. Если сервер имеет несколько сетевых плат, обозреватель SQL Server возвращает первый допустимый порт, который найден для SQL Server. SQL Server 2005 и обозреватель SQL Server поддерживают IP-протокол как версии 4, так и версии 6.

Если клиенты SQL Server 2000 и SQL Server 2005 обращаются к ресурсам SQL Server на именованном экземпляре, сетевая клиентская библиотека посылает UDP-сообщение на сервер через порт 1434. А обозреватель SQL Server отвечает с помощью порта TCP/IP или именованного канала запрошенного экземпляра. Затем сетевая библиотека клиентского приложения завершает соединение, отправляя запрос на сервер с указанием номера порта или имени канала, относящегося к нужному экземпляру.

Дополнительные сведения о запуске и остановке службы «SQL Server, обозреватель» см. в разделе «Как запустить и остановить службу «SQL Server, обозреватель» в электронной документации по SQL Server.

Применение обозревателя SQL Server

Если служба «SQL Server, обозреватель» не запущена, то возможность соединения с SQL Server остается только при указании верного номера порта или именованного канала. Например, к экземпляру SQL Server по умолчанию можно подключиться по порту TCP/IP, если он прослушивает порт 1433.

Однако, если служба «SQL Server, обозреватель» не запущена, следующие соединения невозможны:

  • если какой-либо компонент пытается подключиться к именованному экземпляру без полного указания всех параметров (номера порта TCP/IP или именованного канала);
  • если компонент формирует или сохраняет сведения о сервере и экземпляре, которые затем используются другими компонентами для повторного соединения;
  • при подключении к именованному экземпляру без указания номера порта или канала;
  • при использовании выделенного административного соединения (DAC) с именованным экземпляром или экземпляром по умолчанию без использования порта TCP/IP 1434;
  • при использовании службы перенаправителя OLAP;
  • при перечислении серверов в среде SQL Server Management Studio, программе Enterprise Manager или Query Analizer.

В клиент-серверном режиме работы SQL Server (например, если приложения обращаются к SQL Server по сети) при остановке или отключении службы «SQL Server, обозреватель» необходимо назначить каждому экземпляру конкретные номера портов и указывать их в коде клиентских приложений. Такой подход приводит к следующим проблемам.

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

Параллельная установка с SQL Server 2000

В SQL Server 2000 идентификация конечной точки соединения с сервером выполнялась службой SQL Server. В SQL Server 2005 эта функция заменена службой «SQL Server, обозреватель». При установке SQL Server на компьютер, где уже установлен SQL Server 2000 или выпуск MSDE, следует убедиться в том, что SQL Server 2000 или выпуск MSDE обновлены до версии с пакетом обновления 3а (SP3а) или более поздней. В версиях, предшествующих пакету обновления 3а (SP3а), неправильно реализовано совместное использование порта 1434, что может привести к недоступности экземпляра SQL Server для запросов от клиентских приложений. Можно изменить порядок запуска служб так, чтобы служба «SQL Server, обозреватель» запускалась перед SQL Server 2000 или выпуском MSDE, однако рекомендуется обновить все старые версии SQL Server с использованием последнего пакета обновления.

Если на компьютере установлен экземпляр SQL Server 2000, который не был обновлен до версии пакета обновления 3а (SP3а), и не запущен обозреватель SQL Server, запускается служба прослушивания SQL Server 2000. Если обозреватель SQL Server запускается после службы прослушивания, он ожидает 5 секунд, пока SQL Server 2000 освободит порт 1434. Если этого не происходит, запуск обозревателя SQL Server отменяется. Для решения этой проблемы, существующей в версиях SQL Server 2000 без пакета обновления 3а (SP3а), остановите SQL Server 2000, запустите обозреватель SQL Server, а затем повторно запустите SQL Server 2000. Служба прослушивания SQL Server 2000 продолжает попытки запуска через порт 1434, поэтому экземпляр SQL Server 2000 как можно быстрее должен быть обновлен до версии пакета обновления 3а (SP3а).

SQL Server версии 7.0 не содержит подобной функции и поэтому не вызывает конфликтов с обозревателем SQL Server.

Кластеризация

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

ms181087.note(ru-ru,SQL.90).gifПримечание.
Если указан порт IP_ANY, при включении прослушивания на определенных IP-адресах пользователь должен настроить тот же TCP-порт на каждом из IP-адресов, поскольку обозреватель SQL Server возвращает каждую найденную пару «адрес-порт».

Установка, удаление и запуск из командной строки

По умолчанию после установки обозреватель SQL Server находится в следующем файле: C:\Program Files\Microsoft SQL Server\90\Shared\sqlbrowser.exe. Если на компьютере установлен SQL Server 2000, который не обновлен до версии с пакетом обновления 3 (SP3), и экземпляр SQL Server 2000 не обновляется, SQL Server 2000 должен быть остановлен на время установки SQL Server 2005. Если запущен SQL Server 2000, обозреватель SQL Server не сможет запуститься и получить порт 1434, и по этой причине установка может быть прервана.

Служба «SQL Server, обозреватель» удаляется при удалении последнего экземпляра SQL Server 2005. При этом экземпляры SQL Server 2000 возобновляют свою работу в исходном режиме.

Обозреватель SQL Server может в целях диагностики быть запущен из командной строки с параметром -c.

<drive>\<path>\sqlbrowser.exe -c

Безопасность

Права доступа учетной записи

Обозреватель SQL Server прослушивает UDP-порт и принимает запросы без проверки подлинности с использованием протокола разрешения SQL Server (SSRP). Обозреватель SQL Server должен запускаться в контексте безопасности непривилегированного пользователя, чтобы минимизировать ущерб при возможном проникновении злоумышленника. Учетную запись можно изменить при помощи диспетчера конфигурации SQL Server. Права, которые необходимо назначить обозревателю SQL Server.

  • Запретить сетевой доступ к этому компьютеру.
  • Запретить локальный вход в систему.
  • Запретить вход в систему в качестве пакетного задания.
  • Запретить вход в систему через службы терминалов.
  • Разрешить вход в систему в качестве службы.
  • Разрешить чтение и запись разделов реестра SQL Server, относящихся к сети (порты и каналы).

Учетная запись по умолчанию

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

  • Любая учетная запись домен\локальная.
  • Учетная запись локальной службы (недоступно на платформах W2K).
  • Учетная запись локальной системы (не рекомендуется за избыточностью прав доступа).

Скрытие экземпляра SQL Server

Скрытые экземпляры SQL Server — это экземпляры, которые поддерживают только соединения через общую память. В SQL Server 2005 установите флаг HideInstance, чтобы обозреватель SQL Server не выдавал сведения об этом экземпляре сервера. Обозреватель SQL Server также поддерживает метод скрытия экземпляров SQL Server 2000, включаемый по установке параметра HideServer в программе Server Network. Дополнительные сведения о настройке параметра HideServer см. в разделе «Как скрыть экземпляр компонента SQL Server Database Engine» в электронной документации по SQL Server.

Применение брандмауэра

Для связи со службой «SQL Server, обозреватель» на сервере, который защищен брандмауэром, в дополнение к TCP-порту SQL Server (например, 1433) откройте UDP-порт 1434. Дополнительные сведения об использовании брандмауэра см. в разделе «Как настроить брандмауэр для доступа к SQL Server» в электронной документации по SQL Server.

Журнал изменений

Версия Журнал

14 апреля 2006 г.

Изменения
  • Включены дополнительные пояснения в раздел «Работа с обозревателем SQL Server», касающиеся списка типов соединений, для которых требуется служба «SQL Server, обозреватель».

5 декабря 2005 г.

Изменения
  • Изменен список случаев, в которых служба «SQL Server, обозреватель» запускается автоматически.