SQL Server Browser Service
- 03/14/2017
- 6 minut na przeczytanie
-
- . m
- M
- M
- J
- c
-
+3
Dotyczy: SQL Server (wszystkie obsługiwane wersje) – tylko Windows Azure SQL Managed Instance
Program SQL ServerBrowser działa jako usługa Windows. SQL Server Browser nasłuchuje przychodzących żądań do zasobów Microsoft SQL Server i dostarcza informacji o instancjach SQL Server zainstalowanych na komputerze. SQL Server Browser przyczynia się do następujących działań:
-
Przeglądanie listy dostępnych serwerów
-
Połączenie z właściwą instancją serwera
-
Połączenie z dedykowanymi punktami końcowymi połączenia administratora (DAC)
Dla każdej instancji silnika bazy danych i SSAS usługa SQL Server Browser (sqlbrowser) dostarcza nazwę instancji i numer wersji. SQL Server Browser jest instalowany wraz z SQL Server.
SQL Server Browser może być skonfigurowany podczas konfiguracji lub za pomocą SQL Server Configuration Manager. Domyślnie usługa SQL Server Browser jest uruchamiana automatycznie:
-
Podczas aktualizacji instalacji.
-
Podczas instalacji na klastrze.
-
Podczas instalacji nazwanej instancji Database Engine, w tym wszystkich instancji SQL Server Express.
-
Przy instalacji nazwanej instancji Analysis Services.
Tło
Przed SQL Server 2000 (8.x) na komputerze mogła być zainstalowana tylko jedna instancja SQL Server. SQL Server nasłuchiwał przychodzących żądań na porcie 1433, przypisanym do SQL Servera przez oficjalną organizację Internet Assigned Numbers Authority (IANA). Tylko jedna instancja SQL Server może korzystać z danego portu, więc kiedy w SQL Server 2000 (8.x) wprowadzono obsługę wielu instancji SQL Server, opracowano SQL Server Resolution Protocol (SSRP), który nasłuchiwał na porcie UDP 1434. Usługa ta odpowiadała na żądania klientów, podając nazwy zainstalowanych instancji oraz porty lub nazwane rury używane przez daną instancję. Aby rozwiązać ograniczenia systemu SSRP, w SQL Server 2005 (9.x) wprowadzono usługę SQL Server Browser jako zamiennik SSRP.
Jak działa SQL Server Browser
Podczas uruchamiania instancji SQL Server, jeśli protokół TCP/IP jest włączony dla SQL Server, serwerowi przypisywany jest port TCP/IP. Jeśli włączony jest protokół named pipes, serwer nasłuchuje na określonym potoku. Ten port lub „potok” jest używany przez konkretną instancję do wymiany danych z aplikacjami klienckimi. Podczas instalacji, port TCP 1433 i potok \sql\query
są przypisane do domyślnej instancji, ale mogą one być później zmienione przez administratora serwera za pomocą SQL Server Configuration Manager. Ponieważ tylko jedna instancja SQL Server może korzystać z portu lub potoku, różne numery portów i nazwy potoków są przypisane dla nazwanych instancji, w tym SQL Server Express. Domyślnie, gdy jest to włączone, zarówno instancje nazwane jak i SQL Server Express są skonfigurowane do korzystania z portów dynamicznych, to znaczy, że dostępny port jest przypisywany podczas startu SQL Server. Jeśli chcemy, możemy przypisać konkretny port do instancji SQL Server. Podczas łączenia klienci mogą określić konkretny port, ale jeśli port jest przydzielany dynamicznie, numer portu może się zmieniać przy każdym ponownym uruchomieniu SQL Server, więc prawidłowy numer portu nie jest znany klientowi.
Po uruchomieniu SQL Server Browser uruchamia się i żąda portu UDP 1434. Przeglądarka SQL Server odczytuje rejestr, identyfikuje wszystkie instancje SQL Server na komputerze i zapisuje używane przez nie porty i nazwane rury. Jeśli serwer posiada dwie lub więcej kart sieciowych, przeglądarka zwraca pierwszy napotkany port dla SQL Server. SQL Server Browser obsługuje ipv6 i ipv4.
Gdy klienci SQL Server żądają zasobów SQL Server, biblioteka sieciowa klienta wysyła wiadomość UDP do serwera używając portu 1434. Przeglądarka SQL Server odpowiada podając port TCP/IP lub nazwę potoku żądanej instancji. Następnie biblioteka sieciowa w aplikacji klienckiej kończy połączenie, wysyłając żądanie do serwera przy użyciu portu lub nazwanej rury żądanej instancji.
Informacje na temat uruchamiania i zatrzymywania usługi SQL Server Browser można znaleźć w SQL Server Books Online.
Używanie SQL Server Browser
Jeśli usługa SQL Server Browser nie jest uruchomiona, nadal można połączyć się z serwerem SQL Server, jeśli poda się prawidłowy numer portu lub nazwaną rurę. Na przykład można połączyć się z domyślną instancją SQL Server za pomocą TCP/IP, jeśli jest ona uruchomiona na porcie 1433.
Jeśli jednak usługa SQL Server Browser nie jest uruchomiona, nie działają następujące połączenia:
-
Każdy komponent, który próbuje połączyć się z nazwaną instancją bez pełnego określenia wszystkich parametrów (takich jak port TCP/IP lub nazwany potok).
-
Dowolny komponent, który generuje lub przekazuje informacje o instancji serwera, które mogłyby być później wykorzystane przez inne komponenty do ponownego połączenia.
-
Połączenie z nazwaną instancją bez podania numeru portu lub rury.
-
DAC do nazwanej instancji lub domyślnej instancji, jeśli nie używa portu TCP/IP 1433.
-
Usługa przekierowania OLAP.
-
Wyliczanie serwerów w SQL Server Management Studio, Enterprise Manager lub Query Analyzer.
Jeśli używasz SQL Server w scenariuszu klient-serwer (na przykład, gdy Twoja aplikacja uzyskuje dostęp do SQL Server przez sieć), jeśli zatrzymasz lub wyłączysz usługę SQL Server Browser, musisz przypisać określony numer portu do każdej instancji i napisać kod aplikacji klienckiej, aby zawsze korzystał z tego numeru portu. Takie podejście wiąże się z następującymi problemami:
-
Musisz aktualizować i utrzymywać kod aplikacji klienckiej, aby upewnić się, że łączy się ona z właściwym portem.
-
Port wybrany dla każdej instancji może być używany przez inną usługę lub aplikację na serwerze, powodując niedostępność instancji SQL Server.
Clustering
SQL Server Browser nie jest zasobem klastrowym i nie obsługuje failover z jednego węzła klastra na drugi. Dlatego w przypadku klastra, SQL Server Browser powinien być zainstalowany i włączony dla każdego węzła klastra. Na klastrach SQL Server Browser nasłuchuje na IP_ANY.
Uwaga
W przypadku nasłuchiwania na IP_ANY, po włączeniu nasłuchiwania na określonych IP, użytkownik musi skonfigurować ten sam port TCP na każdym IP, ponieważ SQL Server Browser zwraca pierwszą parę IP/port, jaką napotka.
Instalowanie, odinstalowywanie i uruchamianie z wiersza poleceń
Usługa SQL Server Browser jest odinstalowywana, gdy usuwana jest ostatnia instancja SQL Server.
Przeglądarka serwera SQL może zostać uruchomiona z wiersza poleceń w celu rozwiązywania problemów, przy użyciu przełącznika -c:
<drive>\<path>\sqlbrowser.exe -c
Bezpieczeństwo
Uprawnienia konta
Przeglądarka serwera SQL nasłuchuje na porcie UDP i przyjmuje nieuwierzytelnione żądania przy użyciu protokołu SQL Server Resolution Protocol (SSRP). Przeglądarka SQL Server powinna być uruchamiana w kontekście bezpieczeństwa użytkownika o niskich uprawnieniach, aby zminimalizować narażenie na złośliwy atak. Konto logowania można zmienić za pomocą SQL Server Configuration Manager. Minimalne prawa użytkownika dla SQL Server Browser są następujące:
-
Zabroń dostępu do tego komputera z sieci
-
Zabroń logowania lokalnie
-
Zabroń logowania jako zadanie wsadowe
-
Zabroń logowania przez usługi terminalowe
-
Zaloguj się jako. service
-
Odczytuj i zapisuj klucze rejestru SQL Server związane z komunikacją sieciową (porty i rury)
Default Account
Setup konfiguruje SQL Server Browser do korzystania z konta wybranego dla usług podczas konfiguracji. Inne możliwe konta to między innymi:
-
Konto dowolnej domeny
-
Konto usługi lokalnej
-
Konto systemu lokalnego (niezalecane, ponieważ ma niepotrzebne uprawnienia)
Ukrycie SQL Server
Ukryte instancje to instancje SQL Server, które obsługują tylko połączenia z pamięcią współdzieloną. Dla SQL Server należy ustawić flagę HideInstance
, aby wskazać, że SQL Server Browser nie powinien odpowiadać informacjami o tej instancji serwera.
Używanie zapory ogniowej
Aby komunikować się z usługą SQL Server Browser na serwerze za zaporą ogniową, należy otworzyć port UDP 1434, oprócz portu TCP używanego przez SQL Server (np. 1433). Aby uzyskać informacje na temat pracy z zaporą ogniową, zobacz „Jak: Configure a Firewall for SQL Server Access” w SQL Server Books Online.
Zobacz także
Protokoły sieciowe i biblioteki sieciowe
.