SQL Server-Browserdienst

Gilt für:SQL Server – nur Windows

Das Programm „SQL Server-Browser“ wird als Windows-Dienst ausgeführt. SQL Server-Browser lauscht auf eingehende Anforderungen für Microsoft SQL Server-Ressourcen und gibt Informationen zu auf dem Computer installierten SQL Server-Instanzen an. SQL Server-Browser unterstützt folgende Aktionen:

  • Durchsuchen einer Liste verfügbarer Server
  • Herstellen einer Verbindung mit der richtigen Serverinstanz
  • Herstellen einer Verbindung mit den Endpunkten einer dedizierten Administratorverbindung (DAC)

Der Dienst „SQL Server-Browser“ (sqlbrowser) gibt für jede Instanz der Datenbank-Engine und von SQL Server Analysis Services (SSAS) den Instanznamen und die Versionsnummer an. SQL Server-Browser wird mit SQL Server installiert.

SQL Server-Browser kann während des Setups oder mithilfe von SQL Server-Konfigurations-Manager konfiguriert werden. In den folgenden Situationen wird der SQL Server -Browserdienst standardmäßig gestartet:

  • Beim Ausführen eines Upgrades für eine Installation.
  • Beim Installieren in einem Cluster.
  • Beim Installieren einer benannten Instanz der Datenbank-Engine, die alle Instanzen von SQL Server Express einschließt.
  • Beim Installieren einer benannten Instanz von SSAS

Hintergrund

Vor SQL Server 2000 (8.x) konnte nur eine Instanz von SQL Server auf einem Computer installiert werden. SQL Server lauschte auf eingehende Anforderungen an Port 1433, der SQL Server durch die Internet Assigned Numbers Authority (Behörde für die zugewiesenen Nummern des Internets, IANA) zugewiesen wurde. Nur eine Instanz von SQL Server kann einen Port verwenden. Daher wurde bei der Einführung der Unterstützung mehrerer SQL Server-Instanzen in SQL Server 2000 (8.x) das SQL Server Resolution Protocol (SSRP, SQL Server-Auflösungsprotokoll) entwickelt, um an UDP-Port 1434 zu lauschen. Dieser Listener-Dienst reagiert auf Clientanforderungen mit den Namen der installierten Instanzen und den von der Instanz verwendeten Ports bzw. Named Pipes.

Um den Einschränkungen des SSRP-Systems zu entgehen, wurde der Dienst „SQL Server-Browser“ in SQL Server 2005 (9.x) als Ersatz für SSRP eingeführt.

Funktionsweise von SQL Server-Browser

Wenn eine Instanz von SQL Server gestartet wird, wird dem Server ein TCP/IP-Port zugewiesen, wenn das [TCP/IP-Protokoll für SQL Server][def] aktiviert ist. SQL Server lauscht auf eine bestimmte Named Pipe, wenn das Named Pipe-Protokoll aktiviert ist. Dieser Port oder "Pipe" wird von der betreffenden Instanz zum Datenaustausch mit Clientanwendungen verwendet. TCP-Port 1433 und Pipe \sql\query werden während der Installation der Standardinstanz zugewiesen. Dennoch können diese später vom Serveradministrator mithilfe von SQL Server-Konfigurations-Manager geändert werden.

Da ein Port oder eine Pipe von nur jeweils einer Instanz von SQL Server verwendet werden kann, werden den benannten Instanzen einschließlich SQL Server Expressunterschiedliche Portnummern und Pipenamen zugewiesen. Wenn diese Option aktiviert ist, werden benannte Instanzen und SQL Server Express standardmäßig für die Verwendung dynamischer Ports konfiguriert. Das heißt, beim Start von SQL Server wird ein verfügbarer Port zugewiesen.

Bei Bedarf kann einer Instanz von SQL Server ein bestimmter Port zugewiesen werden. Beim Herstellen der Verbindung können die Clients einen bestimmten Port angeben. Wenn der Port jedoch dynamisch zugewiesen wird, kann sich die Portnummer bei jedem Neustart des SQL-Servers ändern, so dass die korrekte Portnummer dem Client unbekannt ist.

Beim Start startet der SQL Server-Browser und beansprucht den UDP-Port 1434. SQL Server-Browser liest die Registrierung, identifiziert alle Instanzen von SQL Server auf dem Computer und notiert die verwendeten Ports und Named Pipes. Wenn ein Server über zwei oder mehr Netzwerkkarten verfügt, gibt SQL Server-Browser den ersten aktivierten Port zurück, der für SQL Server gefunden wird. SQL Server-Browser unterstützt ipv6 und ipv4.

Wenn SQL Server-Clients SQL Server-Ressourcen anfordern, sendet die Clientnetzwerkbibliothek über den Port 1434 eine UDP-Nachricht an den Server. SQL Server-Browser antwortet mit dem TCP/IP-Port oder der Named Pipe der angeforderten Instanz. Anschließend wird die Verbindung durch die Netzwerkbibliothek der Clientanwendung vollständig abgeschlossen, indem über den Port oder die Named Pipe der gewünschten Instanz eine Anforderung an den Server gesendet wird.

Informationen zum Starten und Beenden des Diensts „SQL Server-Browser“ finden Sie im Artikel Starten, Beenden, Anhalten, Fortsetzen und Neustarten von SQL Server-Diensten.

SQL Server-Browser verwenden

Wenn der SQL Server-Browser-Dienst nicht ausgeführt wird, können Sie trotzdem eine Verbindung mit SQL Server herstellen, wenn Sie die richtige Portnummer oder Named Pipe angeben. Sie können beispielsweise über TCP/IP eine Verbindung mit der Standardinstanz von SQL Server herstellen, wenn sie an Port 1433 ausgeführt wird.

Folgende Verbindungen können jedoch nicht hergestellt werden, wenn der SQL Server-Browser nicht ausgeführt wird:

  • Ein Verbindungsversuch einer beliebigen Komponente mit einer benannten Instanz ohne Angabe aller Parameter (z. B. des TCP/IP-Ports oder der Named Pipe).
  • Jede Komponente, die Serverinstanz-Informationen generiert oder weitergibt, die später von anderen Komponenten zur Wiederherstellung der Verbindung verwendet werden können.
  • Verbindung mit einer benannten Instanz ohne Angabe der Portnummer oder der Pipe.
  • Eine DAC mit einer benannten Instanz oder der Standardinstanz, wenn der TCP/IP-Port 1433 nicht verwendet wird
  • Der OLAP-Redirectordienst.
  • Aufzählen von Servern in SQL Server Management Studio oder Azure Data Studio

Angenommen, Sie verwenden SQL Server in einem Clientserverszenario (z. B. wenn Ihre Anwendung über ein Netzwerk auf SQL Server zugreift). Wenn Sie den SQL Server Browser-Dienst stoppen oder deaktivieren, müssen Sie jeder Instanz eine bestimmte Portnummer zuweisen und Ihren Client-Anwendungscode so schreiben, dass er diese Portnummer verwendet. Dieser Ansatz birgt folgende Probleme:

  • Sie müssen den Code der Clientanwendung aktualisieren und überarbeiten, um sicherzustellen, dass eine Verbindung mit dem richtigen Port hergestellt wird.
  • Die Ports, die Sie für die einzelnen Instanzen auswählen, können auf dem Server durch andere Dienste oder Anwendungen verwendet werden, sodass die Instanz von SQL Server nicht verfügbar ist.

Cluster und SQL Server-Browser

SQL Server-Browser ist keine Clusterressource und unterstützt kein Failover von einem Clusterknoten zum anderen. Daher sollte im Falle eines Clusters der SQL Server-Browser für jeden Clusterknoten installiert und aktiviert werden. In Clustern lauscht SQL Server-Browser auf IP_ANY.

Hinweis

Wenn Sie bei der Überwachung von IP_ANY das Überwachen von bestimmten IPs aktivieren, muss der Benutzer denselben TCP-Port auf jeder IP konfigurieren, da SQL Server-Browser das erste IP/Port-Paar zurückgibt, auf das er trifft.

Installieren, Deinstallieren und Ausführen über die Befehlszeile

Standardmäßig ist das Programm „SQL Server-Browser“ unter C:\Programme (x86)\Microsoft SQL Server\90\Shared\sqlbrowser.exe installiert.

Der SQL Server -Browserdienst wird deinstalliert, wenn die letzte Instanz von SQL Server entfernt wird.

SQL Server-Browser kann zur Problembehandlung mit der Option -c von der Eingabeaufforderung aus gestartet werden:

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

Sicherheit

Der SQL Server-Browser-Dienst ist entscheidend für die Erleichterung der Netzwerkkommunikation mit SQL Server-Instanzen.

Zu den Sicherheitsmaßnahmen für den SQL Server-Browser-Dienst gehören:

  • Konfigurieren von Firewalls, um den Datenverkehr zuzulassen.
  • Beschränkung des Zugriffs auf vertrauenswürdige IP-Adressen.
  • Regelmäßige Anwendung von Updates zur Behebung von Sicherheitslücken.
  • Darüber hinaus ist es unerlässlich, starke Authentifizierungs- und Autorisierungsrichtlinien zu implementieren, um unbefugten Zugriff zu verhindern und die Integrität Ihrer SQL Server-Umgebung zu wahren.

Kontoberechtigungen

SQL Server-Browser lauscht an einem UDP-Port und empfängt nicht authentifizierte Anforderungen mithilfe des SQL Server Resolution Protocol (SSRP). SQL Server-Browser sollte im Sicherheitskontext eines Benutzers bzw. einer Benutzerin mit geringen Zugriffsrechten ausgeführt werden, um die Gefahr eines böswilligen Angriff zu minimieren. Das Anmeldekonto kann mithilfe von SQL Server-Konfigurations-Manager geändert werden.

Die Mindestbenutzerrechte für SQL Server-Browser sind:

  • Zugriff vom Netzwerk auf diesen Computer verweigern
  • Lokales Anmelden verweigern.
  • Anmelden als Batchauftrag verweigern.
  • Anmelden über Terminaldienste verweigern
  • Anmelden als Dienst
  • Lesen und schreiben der SQL Server-Registrierungsschlüssel, die sich auf die Netzwerkkommunikation beziehen (Ports und Pipes)

Standardkonto

Bei Setup wird SQL Server-Browser so konfiguriert, dass das Konto verwendet wird, das während des Setups für die Dienste ausgewählt wurde. Weitere mögliche Konten sind:

  • Beliebige domain\local-Konten
  • Das Konto Lokaler Dienst
  • Das Konto Lokales System (nicht empfohlen, da es über nicht erforderliche Berechtigungen verfügt).

SQL Server ausblenden

Bei ausgeblendeten Instanzen handelt es sich um Instanzen von SQL Server, die nur Shared Memory-Verbindungen unterstützen. Geben Sie für SQL Server das Flag HideInstance an, um anzugeben, dass der SQL Server-Browser nicht mit Informationen zu dieser Serverinstanz antworten soll.

Verwenden einer Firewall

Um mit dem SQL Server Browser-Dienst auf einem Server hinter einer Firewall zu kommunizieren, öffnen Sie den UDP-Port 1434 und den von SQL Server verwendeten TCP-Port (z. B. 1433). Informationen zum Arbeiten mit einer Firewall finden Sie unter Konfigurieren von Windows Defender Firewall zum Zulassen des Zugriffs durch SQL Server.

Siehe auch

Weitere Informationen zu verwandten Konzepten finden Sie in den folgenden Artikeln: