SQL Server Browser Service

  • 14.03.2017
  • 6 Minuten zu lesen
    • m
    • M
    • M
    • J
    • c
    • +3

Gilt für: SQL Server (alle unterstützten Versionen) – nur Windows Azure SQL Managed Instance

Das Programm SQL ServerBrowser wird als Windows-Dienst ausgeführt. SQL Server Browser wartet auf eingehende Anfragen nach Microsoft SQL Server-Ressourcen und liefert Informationen über die auf dem Computer installierten SQL Server-Instanzen. SQL Server Browser trägt zu den folgenden Aktionen bei:

  • Durchsuchen einer Liste verfügbarer Server

  • Verbinden mit der richtigen Serverinstanz

  • Verbinden mit DAC-Endpunkten (Dedicated Administrator Connection)

Für jede Instanz von Database Engine und SSAS stellt der SQL Server Browser-Dienst (sqlbrowser) den Instanznamen und die Versionsnummer bereit. SQL Server Browser wird mit SQL Server installiert.

SQL Server Browser kann während des Setups oder mit dem SQL Server Configuration Manager konfiguriert werden. Standardmäßig wird der SQL Server Browser-Dienst automatisch gestartet:

  • Bei der Aktualisierung einer Installation.

  • Bei der Installation in einem Cluster.

  • Bei der Installation einer benannten Instanz der Datenbank-Engine einschließlich aller Instanzen von SQL Server Express.

  • Bei der Installation einer benannten Instanz von Analysis Services.

Hintergrund

Vor SQL Server 2000 (8.x) konnte nur eine Instanz von SQL Server auf einem Computer installiert werden. SQL Server lauschte auf eingehende Anfragen an Port 1433, der SQL Server von der offiziellen Internet Assigned Numbers Authority (IANA) zugewiesen wurde. Als mit SQL Server 2000 (8.x) die Unterstützung für mehrere Instanzen von SQL Server eingeführt wurde, wurde das SQL Server Resolution Protocol (SSRP) entwickelt, um den UDP-Port 1434 abzuhören. Dieser Listener-Dienst antwortete auf Client-Anfragen mit den Namen der installierten Instanzen und den von der Instanz verwendeten Ports oder Named Pipes. Um die Einschränkungen des SSRP-Systems zu beheben, wurde mit SQL Server 2005 (9.x) der SQL Server Browser-Dienst als Ersatz für SSRP eingeführt.

Wie SQL Server Browser funktioniert

Wenn eine Instanz von SQL Server startet und das TCP/IP-Protokoll für SQL Server aktiviert ist, wird dem Server ein TCP/IP-Port zugewiesen. Wenn das Named Pipes-Protokoll aktiviert ist, lauscht SQL Server an einer bestimmten Named Pipe. Dieser Port bzw. diese „Pipe“ wird von der jeweiligen Instanz für den Datenaustausch mit Client-Anwendungen verwendet. Bei der Installation werden der Standardinstanz der TCP-Port 1433 und die Pipe \sql\query zugewiesen, die jedoch später vom Serveradministrator mit dem SQL Server-Konfigurationsmanager geändert werden können. Da nur eine Instanz von SQL Server einen Port oder eine Pipe verwenden kann, werden für benannte Instanzen, einschließlich SQL Server Express, unterschiedliche Portnummern und Pipe-Namen zugewiesen. Standardmäßig sind sowohl benannte Instanzen als auch SQL Server Express so konfiguriert, dass sie dynamische Ports verwenden, d. h. beim Start von SQL Server wird ein verfügbarer Port zugewiesen. Wenn Sie möchten, kann einer Instanz von SQL Server ein bestimmter Port zugewiesen werden. Wenn der Port jedoch dynamisch zugewiesen ist, kann sich die Portnummer bei jedem Neustart von SQL Server ändern, so dass die korrekte Portnummer dem Client nicht bekannt ist.

Beim Start startet SQL Server Browser und beansprucht UDP-Port 1434. SQL Server Browser liest die Registrierung, identifiziert alle Instanzen von SQL Server auf dem Computer und notiert die Ports und Named Pipes, die sie verwenden. Wenn ein Server zwei oder mehr Netzwerkkarten hat, gibt SQL Server Browser den ersten aktivierten Port zurück, den er für SQL Server findet. SQL Server Browser unterstützt ipv6 und ipv4.

Wenn SQL Server-Clients SQL Server-Ressourcen anfordern, sendet die Client-Netzwerkbibliothek eine UDP-Nachricht über Port 1434 an den Server. SQL Server Browser antwortet mit dem TCP/IP-Port oder der Named Pipe der angeforderten Instanz. Die Netzwerkbibliothek in der Clientanwendung schließt dann die Verbindung ab, indem sie eine Anforderung an den Server unter Verwendung des Ports oder der Named Pipe der gewünschten Instanz sendet.

Informationen zum Starten und Beenden des SQL Server Browser-Dienstes finden Sie in SQL Server Books Online.

Verwenden von SQL Server Browser

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

Wenn der SQL Server Browser-Dienst jedoch nicht ausgeführt wird, funktionieren die folgenden Verbindungen nicht:

  • Jede Komponente, die versucht, eine Verbindung zu einer benannten Instanz herzustellen, ohne alle Parameter (wie den TCP/IP-Port oder die benannte Pipe) vollständig anzugeben.

  • Jede Komponente, die Server-Instanz-Informationen generiert oder weitergibt, die später von anderen Komponenten zur erneuten Verbindung verwendet werden könnten.

  • Verbindung zu einer benannten Instanz ohne Angabe der Portnummer oder der Pipe.

  • DAC zu einer benannten Instanz oder der Standardinstanz, wenn nicht TCP/IP-Port 1433 verwendet wird.

  • Der OLAP-Redirector-Dienst.

  • Aufzählen von Servern in SQL Server Management Studio, Enterprise Manager oder Query Analyzer.

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

  • Sie müssen den Code der Clientanwendung aktualisieren und pflegen, um sicherzustellen, dass die Verbindung mit dem richtigen Port hergestellt wird.

  • Der Port, den Sie für jede Instanz wählen, kann von einem anderen Dienst oder einer anderen Anwendung auf dem Server verwendet werden, wodurch die Instanz von SQL Server nicht verfügbar ist.

Clustering

SQL Server Browser ist keine geclusterte Ressource und unterstützt kein Failover von einem Clusterknoten zum anderen. Im Falle eines Clusters sollte SQL Server Browser daher für jeden Knoten des Clusters installiert und aktiviert werden. In Clustern lauscht SQL Server Browser auf IP_ANY.

Hinweis

Wenn Sie das Lauschen auf IP_ANY auf bestimmten IPs aktivieren, muss der Benutzer denselben TCP-Port auf jeder IP konfigurieren, da SQL Server Browser das erste IP/Port-Paar zurückgibt, das er findet.

Installieren, Deinstallieren und Ausführen über die Befehlszeile

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

SQL Server Browser kann zur Fehlerbehebung von der Befehlszeile aus gestartet werden, indem der Schalter -c verwendet wird:

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

Sicherheit

Kontoberechtigungen

SQL Server Browser lauscht an einem UDP-Port und akzeptiert unauthentifizierte Anfragen unter Verwendung des SQL Server Resolution Protocol (SSRP). SQL Server Browser sollte im Sicherheitskontext eines wenig privilegierten Benutzers ausgeführt werden, um die Anfälligkeit für bösartige Angriffe zu minimieren. Das Anmeldekonto kann mit Hilfe des SQL Server Configuration Manager geändert werden. Die Mindestbenutzerrechte für SQL Server Browser sind die folgenden:

  • Zugriff auf diesen Computer vom Netzwerk aus verweigern

  • Lokale Anmeldung verweigern

  • Anmeldung als Batchjob verweigern

  • Anmeldung über Terminaldienste verweigern

  • Anmeldung als Dienst

  • Lesen und Schreiben der SQL Server-Registrierungsschlüssel für die Netzwerkkommunikation (Ports und Pipes)

Standardkonto

Setup konfiguriert SQL Server Browser so, dass das während des Setups für die Dienste ausgewählte Konto verwendet wird. Andere mögliche Konten sind die folgenden:

  • beliebiges lokales Domänenkonto

  • das lokale Dienstkonto

  • das lokale Systemkonto (nicht empfohlen, da es unnötige Berechtigungen hat)

Ausgeblendeter SQL Server

Ausgeblendete Instanzen sind Instanzen von SQL Server, die nur Shared Memory-Verbindungen unterstützen. Setzen Sie für SQL Server das Flag HideInstance, um anzugeben, dass SQL Server Browser nicht mit Informationen über diese 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 zusätzlich zu dem von SQL Server verwendeten TCP-Port (z. B. 1433). Informationen über die Arbeit mit einer Firewall finden Sie unter „How to: Konfigurieren einer Firewall für den Zugriff auf SQL Server“ in SQL Server Books Online.

Siehe auch

Netzwerkprotokolle und Netzwerkbibliotheken

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.