Браузер sql server для чего нужен
A new service, SQL Server Browser, was introduced with SQL Server 2005 and is also used with SQL Server 2008. In this tip I will cover what this is and how to use this service to improve your SQL Server environment.
Solution
The SQL Server Browser service introduced in SQL Server 2005, runs as a Windows service and it is an extension of SQL Server Resolution Protocol (SSRP) of SQL Server 2000. Like SSRP it plays an important role while working with more than one SQL Server instance installed on the same machine. The basic purpose of the SQL Server Browser service is to provide instance and port information to incoming connection requests.
To configure a better and safe access mechanism for SQL Server, a DBA should have proper understanding of the SQL Server Browser service.
Below I will discuss the access mechanism with reference to the TCP/IP protocol.
How to access SQL Server Browser service
SQL Server Browser service can be configured during installation or after installation it can be accessed in number of ways. Here are couple of common ways to access the SQL Server Browser service.
- Through Windows Services MMC. Access Windows services through the control panel or enter services.msc in the run box.
- Through a command prompt
- Through SQL Server Configuration Manager (SQL Server 2005/2008)
- Through Surface Area configuration (SAC, SQL Server 2005 only)
It should be noted that SAC just provides access to start/stop or to change the startup type for the SQL Server Browser service. For management of all other parameters like ports, paths you have to use SQL Server Configuration Manager. Also SQL Server Browser service can be started by using command prompt.
What if SQL Server Browser service is stopped?
The SQL Server Browser service is installed with installation of SQL Server 2005/2008. It also serves earlier versions installed on the same machine if there any. The SQL Server Browser service has different impact in different situations, such as:
- If you have just one instance installed on machine and it is running on default port 1433, then status of SQL Server Browser service does not make any difference in your connection parameters.
- If there are more than one instances running on the same machine, in that case either you have to start SQL Server Browser service or provide the port number along with IP (or server name) and instance name, to access any other instance than default.
- If SQL Server Browser service is stopped and IP along with port number is not provided then connection will be refused.
- If SQL Server instance is configured using dynamic ports then browser service is required to connect to correct port number.
- Also your named instances will not be published in the list of SQL Server instances on the network (which could be a good thing)
Best practices for using SQL Server browser service
The way you use SQL Server Browser service affects the access to your SQL Server instances, hence the security of installed instances. At one end, the most security conscious approach may be to use customized static ports for your instances and access SQL Server with fully qualified connection parameters. It would include IP + InstanceName + Port. In this configuration your instance would not be exposed to the network also more parameters are required in the connection string.
It would be a secure configuration compared to having the SQL Server Browser service running and serving the incoming connection requests with instance and port information. If you have no problem in using fully customized connection strings (IP + Name + Port), then you can stop the browser service permanently and access the instance through a fully qualified connection string.
In another type of configuration, if the instance is configured to use dynamic ports each time, then SQL Server Browser service should be running, otherwise there would be no way to keep track of the dynamic ports that are assigned.
If you have just a default instance installed (with default port) on your machine then SQL Server Browser service may be stopped to avoid overhead.
As part of best practices, always run SQL Server Browser service with a minimum privileged account. According to BOL any Windows user having the following rights would be capable to run the SQL Server Browser service.
- Deny access to this computer from the network
- Deny logon locally
- Deny logon as a batch job
- Deny logon through Terminal Services
- Log on as a service
- Read and write the SQL Server registry keys related to network communication (ports and pipes)
You can change the default account of the browser service (local system), to any other user having the above mentioned rights on the machine.
Limitations and further considerations
- SQL Server Browser service operates at the OS level. You can not have the browser service started for one instance and stopped for others on the same machine. If SQL Server Browser service is started, it would be serving all incoming connection requests.
- Same concept may be applied in case of clustering. You have to separately install and start the browser service on each node of the cluster.
- If you are using any type of firewall then do not forget to include UDP port 1434 in the exception list. UDP port 1434 is a port used by the SQL Server Browser service.
- If you are running SQL Server 2000 instance side by side along with SQL Server 2005/2008, then make sure to apply service pack 3 for the SQL Server 2000 instance. SP3 is required to work correctly with the SQL Server Browser service.
- It would be better if you have SQL Server Browser service with same settings on both development and production servers. It would prevent any problems due to differences of connection string information.
Testing the configurations
I have a named instance with the following customized static port as shown in TCP/IP properties of instance in SQL Server Configuration Manager.
If SQL Server Browser service is not running then start it through the command prompt or any of the other ways mentioned above.
When the browser service is running, I can access the instance without a specifying the port. I can successfully login with the following connection parameters (IP + InstanceName).
Now stop the SQL Server Browser service with net stop sqlbrowser command in the command prompt or one of the other ways that were mentioned above. Also exit SSMS and reopen it. Try to login again with the same parameters as before. This time you will get a message like the following.
The reason is that the browser service is not running and the customized static port is also missing in the connection parameters. To login successfully we have to provide the customized port number in the following way. The server name field would need IP\InstanceName,PortNumber.
Hopefully this has given you enough information to understand how the browser service runs and when and when you do not need to have this service running.
Next Steps
Before making any changes to the SQL Server Browser service make sure that connection strings in existing code are changed to meet the changed configurations, otherwise you may have some connection issues.
Браузер SQL Server выполняется как служба Windows. SQL Server прослушивает входящие запросы к ресурсам Microsoft SQL Server и предоставляет сведения об экземплярах SQL Server, установленных на компьютере. SQL Server предназначен для выполнения трех задач:
просмотра списка доступных серверов;
соединения с нужным экземпляром сервера;
соединения с конечными точками через выделенное административное соединение (DAC).
Компонент Database Engine и Службы SSAS получают от службы "Браузер SQL Server" (sqlbrowser) имя и номер версии для каждого экземпляра. Браузер SQL Server устанавливается вместе с SQL Server.
Браузер SQL Server настраивается в ходе установки или с помощью диспетчера конфигурации SQL Server. По умолчанию служба "Браузер SQL Server" запускается автоматически:
при обновлении установки;
при установке в кластере;
при установке именованного экземпляра компонента Компонент Database Engine, включая все экземпляры SQL Server Express;
при установке именованного экземпляра служб Службы Analysis Services.
Историческая справка
До версии SQL Server 2000 (8.x)на компьютер мог быть установлен только один экземпляр SQL Server . SQL Server прослушивал входящие запросы через порт 1433, назначенный для SQL Server комитетом IANA. Порт может использоваться только одним экземпляром SQL Server , поэтому после появления в SQL Server 2000 (8.x) поддержки нескольких экземпляров SQL Serverбыл разработан протокол разрешения SQL Server (SSRP) для прослушивания UDP-порта 1434. Эта служба прослушивания отвечала на клиентские запросы, передавая им имена установленных экземпляров с указанием портов или именованных каналов, используемых экземпляром. Чтобы избавиться от ограничений протокола SSRP, в SQL Server 2005 (9.x) она была заменена службой браузера SQL Server .
Как работает служба «Обозреватель SQL Server»
Если SQL Server настроен на использование протокола TCP/IP, то при запуске экземпляра 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 поддерживает протоколы ipv6 и ipv4.
Применение обозревателя SQL Server
Если служба « SQL Server , браузер» не запущена, то возможность соединения с SQL Server остается только при указании верного номера порта или именованного канала. Например, к экземпляру SQL Server по умолчанию можно подключиться по порту TCP/IP, если он прослушивает порт 1433.
Однако если служба « SQL Server , браузер» не запущена, следующие соединения невозможны.
Если какой-либо компонент пытается подключиться к именованному экземпляру без полного указания всех параметров (номера порта TCP/IP или именованного канала).
Если компонент формирует или сохраняет сведения о сервере и экземпляре, которые затем используются другими компонентами для повторного соединения.
При соединении с именованным экземпляром без указания номера порта или канала.
При использовании выделенного административного соединения с именованным экземпляром или экземпляром по умолчанию без использования порта TCP/IP 1433.
При использовании службы перенаправителя OLAP.
При перечислении серверов в среде SQL Server Management Studio, программе Enterprise Manager или Query Analizer.
В клиент-серверном режиме работы SQL Server (например, если приложения обращаются к SQL Server по сети) при остановке или отключении службы « SQL Server , браузер» необходимо назначить каждому экземпляру определенные номера портов и указывать их в коде клиентских приложений. Такой подход приводит к следующим проблемам.
Необходимо обновлять и поддерживать код клиентских приложений, чтобы они соединялись по соответствующим номерам портов.
Порт, указанный для экземпляра, может быть уже занят другой службой или приложением, работающим на сервере, что может привести к недоступности экземпляра SQL Server .
Кластеризация
SQL Server не является кластеризованным ресурсом и не поддерживает отработку отказа с одного узла кластера на другой. Следовательно, при использовании кластера браузер SQL Server необходимо устанавливать и включать для каждого узла. При работе на кластерах браузер SQL Server прослушивает порт IP_ANY.
Если указан порт IP_ANY, при включении прослушивания на определенных IP-адресах пользователь должен настроить тот же TCP-порт на каждом из IP-адресов, поскольку браузер SQL Server возвращает каждую найденную пару «адрес-порт».
Установка, удаление и запуск из командной строки
По умолчанию браузер SQL Server устанавливается в C:\Program Files (x86)\Microsoft SQL Server\90\Shared\sqlbrowser.exe.
Служба браузера SQL Server удаляется при удалении последнего экземпляра SQL Server .
SQL Server В целях диагностики браузер можно запустить из командной строки с параметром -c :
Безопасность
Права доступа учетной записи
SQL Server Браузер прослушивает UDP-порт и принимает запросы без проверки подлинности с использованием протокола разрешения SQL Server (SSRP). SQL Server должен запускаться в контексте безопасности непривилегированного пользователя, чтобы минимизировать ущерб при возможном проникновении злоумышленника. Учетную запись входа можно изменить при помощи диспетчера конфигурации SQL Server . Права, которые необходимо назначить браузеру SQL Server .
Запретить сетевой доступ к этому компьютеру.
Запретить локальный вход в систему.
Запретить вход в систему в качестве пакетного задания.
Запретить вход в систему через службы терминалов.
Разрешить чтение и запись разделов реестра SQL Server , связанных с сетью (порты и каналы).
Учетная запись по умолчанию
Программа установки настраивает браузер SQL Server для использования учетной записи, выбранной для служб при установке. Можно указать другую учетную запись:
Любая учетная запись домен\локальная .
Учетная запись локальной службы
Учетная запись локальной системы (не рекомендуется за избыточностью прав доступа).
Скрытие экземпляра SQL Server
Скрытые экземпляры SQL Server — это экземпляры, которые поддерживают только соединения через общую память. В SQL Serverустановите флаг HideInstance , чтобы браузер SQL Server не выдавал сведения об этом экземпляре сервера.
Применение брандмауэра
Для связи со службой браузера SQL Server на сервере, защищенном брандмауэром, в дополнение к TCP-порту SQL Server (например 1433) откройте UDP-порт 1434. Сведения о работе с брандмауэром см. в разделе "Практическое руководство. Настройка брандмауэра для доступа SQL Server" в документации по SQL Server.
Обозреватель SQL Server работает как служба Windows. Обозреватель SQL Server прослушивает входящие запросы к ресурсам Microsoft SQL Server и предоставляет клиентам сведения об экземплярах SQL Server, установленных на компьютере. Обозреватель SQL Server предназначен для выполнения трех задач:
- просмотра списка доступных серверов;
- соединения с нужным экземпляром сервера;
- соединения с конечными точками через выделенное административное соединение (DAC).
Для каждого экземпляра ядра СУБД и SQL Server Analysis Services (SSAS) служба обозревателя SQL Server (sqlbrowser) предоставляет имя экземпляра и номер версии. Обозреватель SQL Server устанавливается вместе с SQL Server.
Обозреватель SQL Server настраивается в ходе установки или с помощью диспетчера конфигурации SQL Server. По умолчанию служба обозревателя SQL Server запускается автоматически:
- при обновлении установки;
- при установке в кластере;
- при установке именованного экземпляра ядра СУБД, включая все экземпляры SQL Server Express;
- при установке именованного экземпляра служб SQL Server Analysis Services.
История
До версии SQL Server 2000 (8.x) на компьютер можно было установить только один экземпляр SQL Server. SQL Server прослушивал входящие запросы через порт 1433, назначенный для SQL Server комитетом IANA. Порт может использоваться только одним экземпляром SQL Server, поэтому после появления в SQL Server 2000 (8.x) поддержки нескольких экземпляров SQL Server был разработан протокол разрешения SQL Server (SSRP) для прослушивания UDP-порта 1434. Эта служба прослушивания отвечала на клиентские запросы, передавая им имена установленных экземпляров с указанием портов или именованных каналов, используемых экземпляром.
Чтобы избавиться от ограничений протокола SSRP, в SQL Server 2005 (9.x) она была заменена службой обозревателя SQL Server.
Как работает служба обозревателя SQL Server
Если SQL Server настроен на использование протокола TCP/IP, то при запуске экземпляра 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 поддерживает протоколы ipv6 и ipv4.
Сведения о запуске и остановке службы обозревателя SQL Server в статье Запуск, остановка, приостановка, возобновление, перезапуск служб SQL Server.
Применение обозревателя SQL Server
Если служба обозревателя SQL Server не запущена, то возможность соединения с SQL Server остается только при указании верного номера порта или именованного канала. Например, к экземпляру SQL Server по умолчанию можно подключиться через порт TCP/IP, если он прослушивает порт 1433.
Однако если служба обозревателя SQL Server не запущена, следующие соединения невозможны.
- Если какой-либо компонент пытается подключиться к именованному экземпляру без полного указания всех параметров (номера порта TCP/IP или именованного канала).
- Если компонент формирует или сохраняет сведения о сервере и экземпляре, которые затем используются другими компонентами для повторного соединения.
- При соединении с именованным экземпляром без указания номера порта или канала.
- При использовании выделенного административного соединения с именованным экземпляром или экземпляром по умолчанию без использования порта TCP/IP 1433.
- При использовании службы перенаправителя OLAP.
- Перечисление серверов в SQL Server Management Studio или Azure Data Studio.
В клиент-серверном режиме работы SQL Server (например, если приложения обращаются к SQL Server по сети) при остановке или отключении службы обозревателя SQL Server необходимо назначить каждому экземпляру определенные номера портов и указывать их в коде клиентских приложений. Такой подход приводит к следующим проблемам.
- Необходимо обновлять и поддерживать код клиентских приложений, чтобы они соединялись по соответствующим номерам портов.
- Порт, указанный для экземпляра, может быть уже занят другой службой или приложением, работающим на сервере, что может привести к недоступности экземпляра SQL Server.
Кластеризация
Обозреватель SQL Server не является кластеризованным ресурсом и не поддерживает отработку отказа с одного узла кластера на другой. Следовательно, при использовании кластера обозреватель SQL Server необходимо устанавливать и включать для каждого узла. При работе на кластерах обозреватель SQL Server прослушивает порт IP_ANY.
Если указан порт IP_ANY, при включении прослушивания на определенных IP-адресах пользователь должен настроить тот же TCP-порт на каждом из IP-адресов, поскольку обозреватель SQL Server возвращает каждую найденную пару "адрес-порт".
Установка, удаление и запуск из командной строки
По умолчанию обозреватель SQL Server устанавливается по следующему пути: C:\Program Files (x86)\Microsoft SQL Server\90\Shared\sqlbrowser.exe.
Служба обозревателя SQL Server удаляется при удалении последнего экземпляра SQL Server.
В целях диагностики обозреватель SQL Server можно запустить из командной строки с параметром -c:
Безопасность
Права доступа учетной записи
Обозреватель SQL Server прослушивает UDP-порт и принимает запросы без проверки подлинности с использованием протокола разрешения SQL Server (SSRP). Обозреватель SQL Server должен запускаться в контексте безопасности непривилегированного пользователя, чтобы минимизировать ущерб при возможном проникновении злоумышленника. Учетную запись входа можно изменить при помощи диспетчера конфигурации SQL Server.
Права, которые необходимо назначить обозревателю SQL Server:
Учетная запись по умолчанию
Программа установки настраивает обозреватель SQL Server на использование учетной записи, выбранной для служб при установке. К другим возможным учетным записям относятся:
- Любая учетная запись домена\локальная учетная запись.
- Учетная запись локальной службы.
- Учетная запись локальной системы (не рекомендуется за избыточностью прав доступа).
Скрытие экземпляра SQL Server
Скрытые экземпляры SQL Server — это экземпляры, которые поддерживают только соединения через общую память. Для SQL Server установите флаг HideInstance , чтобы обозреватель SQL Server не выдавал сведения об этом экземпляре сервера.
Применение брандмауэра
Для связи со службой обозревателя SQL Server на сервере, защищенном брандмауэром, в дополнение к TCP-порту SQL Server (например 1433) откройте UDP-порт 1434. Сведения о работе с брандмауэром см. в статье Настройка брандмауэра Windows для разрешения доступа к SQL Server.
The SQL ServerBrowser program runs as a Windows service. SQL Server Browser listens for incoming requests for Microsoft SQL Server resources and provides information about SQL Server instances installed on the computer. SQL Server Browser contributes to the following actions:
Browsing a list of available servers
Connecting to the correct server instance
Connecting to dedicated administrator connection (DAC) endpoints
For each instance of the Database Engine and SSAS, the SQL Server Browser service (sqlbrowser) provides the instance name and the version number. SQL Server Browser is installed with SQL Server.
SQL Server Browser can be configured during setup or by using SQL Server Configuration Manager. By default, the SQL Server Browser service starts automatically:
When upgrading an installation.
When installing on a cluster.
When installing a named instance of the Database Engine including all instances of SQL Server Express.
When installing a named instance of Analysis Services.
Background
Prior to SQL Server 2000 (8.x), only one instance of SQL Server could be installed on a computer. SQL Server listened for incoming requests on port 1433, assigned to SQL Server by the official Internet Assigned Numbers Authority (IANA). Only one instance of SQL Server can use a port, so when SQL Server 2000 (8.x) introduced support for multiple instances of SQL Server, SQL Server Resolution Protocol (SSRP) was developed to listen on UDP port 1434. This listener service responded to client requests with the names of the installed instances, and the ports or named pipes used by the instance. To resolve limitations of the SSRP system, SQL Server 2005 (9.x) introduced the SQL Server Browser service as a replacement for SSRP.
How SQL Server Browser Works
When an instance of SQL Server starts, if the TCP/IP protocol is enabled for SQL Server, the server is assigned a TCP/IP port. If the named pipes protocol is enabled, SQL Server listens on a specific named pipe. This port, or "pipe," is used by that specific instance to exchange data with client applications. During installation, TCP port 1433 and pipe \sql\query are assigned to the default instance, but those can be changed later by the server administrator using SQL Server Configuration Manager. Because only one instance of SQL Server can use a port or pipe, different port numbers and pipe names are assigned for named instances, including SQL Server Express. By default, when enabled, both named instances and SQL Server Express are configured to use dynamic ports, that is, an available port is assigned when SQL Server starts. If you want, a specific port can be assigned to an instance of SQL Server. When connecting, clients can specify a specific port; but if the port is dynamically assigned, the port number can change anytime SQL Server is restarted, so the correct port number is unknown to the client.
Upon startup, SQL Server Browser starts and claims UDP port 1434. SQL Server Browser reads the registry, identifies all instances of SQL Server on the computer, and notes the ports and named pipes that they use. When a server has two or more network cards, SQL Server Browser returns the first enabled port it encounters for SQL Server. SQL Server Browser support ipv6 and ipv4.
When SQL Server clients request SQL Server resources, the client network library sends a UDP message to the server using port 1434. SQL Server Browser responds with the TCP/IP port or named pipe of the requested instance. The network library on the client application then completes the connection by sending a request to the server using the port or named pipe of the desired instance. SQL Server Browser Service does not provide port resolution for default instances.
Using SQL Server Browser
If the SQL Server Browser service is not running, you are still able to connect to SQL Server if you provide the correct port number or named pipe. For instance, you can connect to the default instance of SQL Server with TCP/IP if it is running on port 1433.
However, if the SQL Server Browser service is not running, the following connections do not work:
Any component that tries to connect to a named instance without fully specifying all the parameters (such as the TCP/IP port or named pipe).
Any component that generates or passes server\instance information that could later be used by other components to reconnect.
Connecting to a named instance without providing the port number or pipe.
DAC to a named instance or the default instance if not using TCP/IP port 1433.
The OLAP redirector service.
Enumerating servers in SQL Server Management Studio, Enterprise Manager, or Query Analyzer.
If you are using SQL Server in a client-server scenario (for example, when your application is accessing SQL Server across a network), if you stop or disable the SQL Server Browser service, you must assign a specific port number to each instance and write your client application code to always use that port number. This approach has the following problems:
You must update and maintain client application code to ensure it is connecting to the proper port.
The port you choose for each instance may be used by another service or application on the server, causing the instance of SQL Server to be unavailable.
Clustering
SQL Server Browser is not a clustered resource and does not support failover from one cluster node to the other. Therefore, in the case of a cluster, SQL Server Browser should be installed and turned on for each node of the cluster. On clusters, SQL Server Browser listens on IP_ANY.
When listening on IP_ANY, when you enable listening on specific IPs, the user must configure the same TCP port on each IP, because SQL Server Browser returns the first IP/port pair that it encounters.
Installing, Uninstalling, and Running from the Command Line
By default, the SQL Server Browser program is installed at C:\Program Files (x86)\Microsoft SQL Server\90\Shared\sqlbrowser.exe.
The SQL Server Browser service is uninstalled when the last instance of SQL Server is removed.
SQL Server Browser can be started from the command prompt for troubleshooting, by using the -c switch:
Security
Account Privileges
SQL Server Browser listens on a UDP port and accepts unauthenticated requests by using SQL Server Resolution Protocol (SSRP). SQL Server Browser should be run in the security context of a low privileged user to minimize exposure to a malicious attack. The logon account can be changed by using the SQL Server Configuration Manager. The minimum user rights for SQL Server Browser are the following:
Deny access to this computer from the network
Deny logon locally
Deny Log on as a batch job
Deny Log On Through Terminal Services
Log on as a service
Read and write the SQL Server registry keys related to network communication (ports and pipes)
Default Account
Setup configures SQL Server Browser to use the account selected for services during setup. Other possible accounts include the following:
Any domain\local account
The local service account
The local system account (not recommended as has unnecessary privileges)
Hiding SQL Server
Hidden instances are instances of SQL Server that support only shared memory connections. For SQL Server, set the HideInstance flag to indicate that SQL Server Browser should not respond with information about this server instance.
Using a Firewall
To communicate with the SQL Server Browser service on a server behind a firewall, open UDP port 1434, in addition to the TCP port used by SQL Server (e.g., 1433). For information about working with a firewall, see "How to: Configure a Firewall for SQL Server Access" in SQL Server Books Online.
Обозреватель SQL Server работает как служба Windows. Обозреватель SQL Server прослушивает входящие запросы к ресурсам Microsoft SQL Server и предоставляет клиентам сведения об экземплярах SQL Server, установленных на компьютере. Обозреватель SQL Server предназначен для выполнения трех задач:
- просмотра списка доступных серверов;
- соединения с нужным экземпляром сервера;
- соединения с конечными точками через выделенное административное соединение (DAC).
Для каждого экземпляра ядра СУБД и SQL Server Analysis Services (SSAS) служба обозревателя SQL Server (sqlbrowser) предоставляет имя экземпляра и номер версии. Обозреватель SQL Server устанавливается вместе с SQL Server.
Обозреватель SQL Server настраивается в ходе установки или с помощью диспетчера конфигурации SQL Server. По умолчанию служба обозревателя SQL Server запускается автоматически:
- при обновлении установки;
- при установке в кластере;
- при установке именованного экземпляра ядра СУБД, включая все экземпляры SQL Server Express;
- при установке именованного экземпляра служб SQL Server Analysis Services.
История
До версии SQL Server 2000 (8.x) на компьютер можно было установить только один экземпляр SQL Server. SQL Server прослушивал входящие запросы через порт 1433, назначенный для SQL Server комитетом IANA. Порт может использоваться только одним экземпляром SQL Server, поэтому после появления в SQL Server 2000 (8.x) поддержки нескольких экземпляров SQL Server был разработан протокол разрешения SQL Server (SSRP) для прослушивания UDP-порта 1434. Эта служба прослушивания отвечала на клиентские запросы, передавая им имена установленных экземпляров с указанием портов или именованных каналов, используемых экземпляром.
Чтобы избавиться от ограничений протокола SSRP, в SQL Server 2005 (9.x) она была заменена службой обозревателя SQL Server.
Как работает служба обозревателя SQL Server
Если SQL Server настроен на использование протокола TCP/IP, то при запуске экземпляра 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 поддерживает протоколы ipv6 и ipv4.
Сведения о запуске и остановке службы обозревателя SQL Server в статье Запуск, остановка, приостановка, возобновление, перезапуск служб SQL Server.
Применение обозревателя SQL Server
Если служба обозревателя SQL Server не запущена, то возможность соединения с SQL Server остается только при указании верного номера порта или именованного канала. Например, к экземпляру SQL Server по умолчанию можно подключиться через порт TCP/IP, если он прослушивает порт 1433.
Однако если служба обозревателя SQL Server не запущена, следующие соединения невозможны.
- Если какой-либо компонент пытается подключиться к именованному экземпляру без полного указания всех параметров (номера порта TCP/IP или именованного канала).
- Если компонент формирует или сохраняет сведения о сервере и экземпляре, которые затем используются другими компонентами для повторного соединения.
- При соединении с именованным экземпляром без указания номера порта или канала.
- При использовании выделенного административного соединения с именованным экземпляром или экземпляром по умолчанию без использования порта TCP/IP 1433.
- При использовании службы перенаправителя OLAP.
- Перечисление серверов в SQL Server Management Studio или Azure Data Studio.
В клиент-серверном режиме работы SQL Server (например, если приложения обращаются к SQL Server по сети) при остановке или отключении службы обозревателя SQL Server необходимо назначить каждому экземпляру определенные номера портов и указывать их в коде клиентских приложений. Такой подход приводит к следующим проблемам.
- Необходимо обновлять и поддерживать код клиентских приложений, чтобы они соединялись по соответствующим номерам портов.
- Порт, указанный для экземпляра, может быть уже занят другой службой или приложением, работающим на сервере, что может привести к недоступности экземпляра SQL Server.
Кластеризация
Обозреватель SQL Server не является кластеризованным ресурсом и не поддерживает отработку отказа с одного узла кластера на другой. Следовательно, при использовании кластера обозреватель SQL Server необходимо устанавливать и включать для каждого узла. При работе на кластерах обозреватель SQL Server прослушивает порт IP_ANY.
Если указан порт IP_ANY, при включении прослушивания на определенных IP-адресах пользователь должен настроить тот же TCP-порт на каждом из IP-адресов, поскольку обозреватель SQL Server возвращает каждую найденную пару "адрес-порт".
Установка, удаление и запуск из командной строки
По умолчанию обозреватель SQL Server устанавливается по следующему пути: C:\Program Files (x86)\Microsoft SQL Server\90\Shared\sqlbrowser.exe.
Служба обозревателя SQL Server удаляется при удалении последнего экземпляра SQL Server.
В целях диагностики обозреватель SQL Server можно запустить из командной строки с параметром -c:
Безопасность
Права доступа учетной записи
Обозреватель SQL Server прослушивает UDP-порт и принимает запросы без проверки подлинности с использованием протокола разрешения SQL Server (SSRP). Обозреватель SQL Server должен запускаться в контексте безопасности непривилегированного пользователя, чтобы минимизировать ущерб при возможном проникновении злоумышленника. Учетную запись входа можно изменить при помощи диспетчера конфигурации SQL Server.
Права, которые необходимо назначить обозревателю SQL Server:
Учетная запись по умолчанию
Программа установки настраивает обозреватель SQL Server на использование учетной записи, выбранной для служб при установке. К другим возможным учетным записям относятся:
- Любая учетная запись домена\локальная учетная запись.
- Учетная запись локальной службы.
- Учетная запись локальной системы (не рекомендуется за избыточностью прав доступа).
Скрытие экземпляра SQL Server
Скрытые экземпляры SQL Server — это экземпляры, которые поддерживают только соединения через общую память. Для SQL Server установите флаг HideInstance , чтобы обозреватель SQL Server не выдавал сведения об этом экземпляре сервера.
Применение брандмауэра
Для связи со службой обозревателя SQL Server на сервере, защищенном брандмауэром, в дополнение к TCP-порту SQL Server (например 1433) откройте UDP-порт 1434. Сведения о работе с брандмауэром см. в статье Настройка брандмауэра Windows для разрешения доступа к SQL Server.
Читайте также: