Verwenden des SQL Server-Browsers
Aktualisiert: 05. Dezember 2005
Der SQL Server-Browser wird auf dem Server als Windows-Dienst ausgeführt. Der SQL Server-Browser überwacht eingehende Anforderungen für SQL Server-Ressourcen und stellt Informationen zu Instanzen von SQL Server zur Verfügung, die auf dem Computer installiert sind. Der SQL Server-Browser trägt zu drei Aktionen bei:
- Durchsuchen einer Liste verfügbarer Server
- Herstellen einer Verbindung mit der richtigen Serverinstanz
- Herstellen einer Verbindung mit den Endpunkten einer dedizierten Administratorverbindung (Dedicated Administrator Connection, DAC)
Der SQL Server-Browserdienst (sqlbrowser) stellt für jede Instanz von Datenbankmodul den Instanznamen und die Versionsnummer bereit. Der SQL Server-Browser ist in SQL Server 2005 installiert und bietet Unterstützung für frühere Versionen von SQL Server ab SQL Server 7.0, die auf dem betreffenden Computer ausgeführt werden.
Der SQL Server-Browserdienst ist für SQL Server Express standardmäßig nicht aktiviert. Die Anfangskonfiguration des SQL Server-Browsers kann mithilfe des Oberflächen-Konfigurationstools ausgeführt werden. Die Verwaltung erfolgt über den SQL Server-Konfigurations-Manager.
Hintergrundinformationen
Vor SQL Server 2000 konnte lediglich eine Instanz von SQL Server auf einem Computer installiert werden. Von SQL Server wurden eingehende Anforderungen an Port 1433 überwacht, der SQL Server durch die Internet Assigned Numbers Authority (IANA) zugewiesen wurde. Da ein Port nur von einer Instanz von SQL Server verwendet werden kann, wurde das SQL Server Resolution Protocol (SSRP) für die Überwachung von Port 1434 entwickelt, als in SQL Server 2000 die Unterstützung für mehrere Instanzen von SQL Server eingeführt wurde. Durch diesen Listenerdienst wurden Clientanforderungen mit den Namen der installierten Instanzen und den von der Instanz verwendeten Ports bzw. benannten Pipes beantwortet. Um Einschränkungen des SSRP-Systems zu lösen, stellt SQL Server 2005 den SQL Server-Browserdienst als Ersatz für SSRP bereit.
Funktionsweise des SQL Server-Browsers
Wenn die Protokolle TCP/IP oder VIA für SQL Server aktiviert sind und eine Instanz von SQL Server gestartet wird, wird dem Server ein TCP/IP-Port zugewiesen. Wenn das Named Pipes-Protokoll aktiviert ist, wird von SQL Server eine spezielle benannte Pipe überwacht. Dieser Port oder diese Pipe wird von der betreffenden Instanz zum Datenaustausch mit Clientanwendungen verwendet. Bei der Installation werden Port 1433 und die Pipe \sql\query
der Standardinstanz zugewiesen, sie können jedoch zu einem späteren Zeitpunkt vom Serveradministrator mithilfe des SQL Server-Konfigurations-Managers geändert werden. Da ein Port oder eine Pipe jeweils nur von einer Instanz von SQL Server verwendet werden kann, werden den benannten Instanzen einschließlich SQL Server Express unterschiedliche Portnummern und Pipenamen zugewiesen. Benannte Instanzen werden standardmäßig für die Verwendung dynamischer Ports konfiguriert, sodass beim Starten von SQL Server ein verfügbarer Port zugewiesen wird. Bei Bedarf kann einer Instanz von SQL Server ein spezieller Port zugewiesen werden. Beim Verbindungsaufbau können die Clients den gewünschten Port angeben. Wenn der Port jedoch dynamisch zugewiesen wird, kann sich die Portnummer bei jedem Neustart von SQL Server ändern, sodass die richtige Portnummer dem Client nicht bekannt ist.
Beim Starten beansprucht der SQL Server-Browser UDP-Port 1434. Der SQL Server-Browser liest die Registrierung, identifiziert alle Instanzen von SQL Server auf dem Computer und notiert die verwendeten Anschlüsse und benannten Pipes. Wenn ein Server über zwei oder mehr Netzwerkkarten verfügt, gibt der SQL Server-Browser alle aktivierten Anschlüsse für SQL Server zurück. SQL Server 2005 und der SQL Server-Browser unterstützen ipv6 und ipv4.
Wenn SQL Server 2000- und SQL Server 2005-Clients SQL Server-Ressourcen anfordern, sendet die Clientnetzwerkbibliothek über den Port 1434 eine UDP-Nachricht an den Server. Der SQL Server-Browser antwortet mit dem TCP/IP-Port oder der benannten Pipe der angeforderten Instanz. Anschließend wird die Verbindung durch die Netzwerkbibliothek der Clientanwendung beendet, indem mithilfe des Ports oder der benannten Pipe der gewünschten Instanz eine Anforderung an den Server gesendet wird.
Verwenden des SQL Server-Browsers
Wenn der SQL Server-Browserdienst nicht ausgeführt wird, können Sie dennoch eine Verbindung mit SQL Server herstellen, wenn Sie den richtigen Port bzw. die richtig benannte 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 sind nicht funktionsfähig:
- Ein Verbindungsversuch einer beliebigen Komponente für eine benannte Instanz ohne vollständige Angabe der Parameter, z. B. des TCP/IP-Ports oder einer benannten Pipe.
- Das Generieren oder Übergeben von Server- oder Instanzinformationen, die später von anderen Komponenten für das Wiederherstellen einer Verbindung verwendet werden können.
- Das Herstellen einer Verbindung mit einer benannten Instanz ohne Angabe der Portnummer oder der Pipe. Dies beinhaltet auch das Spiegeln von Daten auf einer benannten Instanz und die Erstellung von Clustern für benannten Instanzen.
- Das Herstellen dedizierter Administratorverbindungen (Dedicated Administrator Connections, DAC) mit einer benannten Instanz oder der Standardinstanz, wenn der TCP/IP-Port 1434 nicht verwendet wird.
- Der OLAP-Redirectordienst.
- Das 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 die Anwendung über ein Netzwerk auf SQL Server zugreift) und Sie den SQL Server-Browserdienst anhalten oder deaktivieren, müssen Sie jeder Instanz eine bestimmte Portnummer zuweisen und den Code der Clientanwendung so umschreiben, dass sie immer diesen Port verwendet. Dieser Ansatz weist folgende Probleme auf:
- Sie müssen den Code der Clientanwendung aktualisieren und verwalten, um sicherzustellen, dass immer eine Verbindung mit dem richtigen Port hergestellt wird.
- Der Port, den Sie für die jeweilige Instanz auswählen, wird möglicherweise von einem anderen Dienst oder einer anderen Anwendung auf dem Server verwendet, was dazu führt, dass die Instanz von SQL Server nicht zur Verfügung steht.
Gleichzeitige Installation mit SQL Server 2000
In SQL Server 2000 erfolgte die Identifikation der Endpunkte der Serververbindung über den SQL Server-Dienst. In SQL Server 2005 wird diese Funktion durch den SQL Server-Browserdienst ersetzt. Wenn Sie SQL Server auf einem Computer installieren, auf dem auch SQL Server 2000 oder MSDE ausgeführt wird, müssen diese Anwendungen auf SP3 oder höher aktualisiert werden. In Versionen vor SP3 wird Port 1434 nicht ordnungsgemäß freigegeben, und die Instanzen von SQL Server werden für Anforderungen von Clientanwendungen möglicherweise nicht zur Verfügung gestellt. Es besteht zwar die Möglichkeit, die Startreihenfolge des Dienstes zu ändern, sodass der SQL Server-Browserdienst vor SQL Server 2000 oder MSDE gestartet wird, es wird jedoch empfohlen, alle älteren Versionen von SQL Server auf das neueste Service Pack zu aktualisieren.
Wenn eine Instanz von SQL Server 2000, die nicht wenigstens auf Service Pack 3a aktualisiert ist, auf dem Computer installiert wird, startet der SQL Server 2000-Listenerdienst, sofern der SQL Server-Browser nicht ausgeführt wird. Wenn der SQL Server-Browser nach dem Listenerdienst gestartet wird, wartet er 5 Sekunden auf die Freigabe des Ports 1434 durch SQL Server 2000. Sollte die Freigabe nicht erfolgen, kann der SQL Server-Browser nicht gestartet werden. Gehen Sie zur Behebung dieses Problems in den Versionen von SQL Server 2000 vor SP3 wie folgt vor: Beenden Sie SQL Server 2000, starten Sie den SQL Server-Browser, und starten Sie dann SQL Server 2000 erneut. Da der Listenerdienst von SQL Server 2000 weiterhin versuchen wird, an Port 1434 zu starten, sollte die Instanz von SQL Server 2000 möglichst bald auf SP3a oder höher aktualisiert werden.
Bei SQL Server 7.0 treten keine Konflikte mit dem SQL Server-Browser auf.
Installieren, Deinstallieren und Ausführen über die Befehlszeile
Das SQL Server-Browserprogramm wird standardmäßig im Ordner C:\Program Files\Microsoft SQL Server\90\Shared\sqlbrowser.exe
installiert. Wenn SQL Server 2000 auf dem Computer installiert ist, aber keine Aktualisierung auf SP3 vorgenommen wurde und die Instanz von SQL Server 2000 nicht aktualisiert wird, sollte SQL Server 2000 während der Installation von SQL Server 2005 angehalten werden. Wenn SQL Server 2000 ausgeführt wird, kann der SQL Server-Browser nicht starten und Port 1434 beanspruchen. In diesem Fall schlägt die Installation möglicherweise aufgrund fehlender Konnektivität fehl.
Der SQL Server-Browserdienst wird deinstalliert, wenn die letzte Instanz von SQL Server 2005 entfernt wird. Instanzen von SQL Server 2000 werden weiterhin unverändert ausgeführt.
Der SQL Server-Browser kann zur Problembehandlung mit dem Schalter -c über die Befehlszeile gestartet werden.
<drive>\<path>\sqlbrowser.exe -c
Sicherheit
Kontoprivilegien
Der SQL Server-Browser überwacht einen UDP-Port; nicht authentifizierte Anforderungen werden mithilfe von SSRP (SQL Server Resolution Protocol) akzeptiert. Der SQL Server-Browser sollte im Sicherheitskontext eines Benutzers mit geringen Zugriffsrechten ausgeführt werden, um die Anfälligkeit gegenüber böswilligen Angriffen zu verringern. Der SQL Server-Browser wird standardmäßig mit dem lokalen Systemkonto gestartet. Das Anmeldekonto kann mithilfe des Tools Windows-Dienste geändert werden. Für den SQL Server-Browser gelten folgende Mindestbenutzerrechte:
- Verweigern des Zugriff vom Netzwerk auf diesen Computer.
- Verweigern der lokalen Anmeldung.
- Verweigern der Anmeldung als Batchauftrag.
- Verweigern der Anmeldung über Terminal Services.
- Anmelden als Dienst.
- Lesen und Schreiben der Registrierungsschlüssel von SQL Server, die sich auf die Netzwerkkommunikation beziehen (Ports und Pipes).
Standardkonto
Beim Setup wird der SQL Server-Browser so konfiguriert, dass beim Setup das für die Dienste ausgewählte Konto verwendet wird. Weitere mögliche Konten sind folgende:
- Beliebige domain\local-Konten
- Das Konto Lokaler Dienst (auf W2K-Plattformen nicht verfügbar)
- Das Konto Lokales System (wird nicht empfohlen, da es über unnötige Berechtigungen verfügt)
Ausblenden von SQL Server
Bei ausgeblendeten Instanzen handelt es sich um Instanzen von SQL Server, die nur Verbindungen im gemeinsam genutzten Speicherbereich unterstützen. In SQL Server 2005 gibt der Registrierungsschlüssel HideInstance
an, dass der SQL Server-Browser nicht mit Informationen zu dieser Serverinstanz antworten soll. Der SQL Server-Browser unterstützt darüber hinaus die SQL Server 2000-Methode zum Ausblenden von Instanzen, in der die Option HideServer
über die Server-Netzwerkkonfiguration festgelegt wird. Weitere Informationen finden Sie unter Vorgehensweise: Ausblenden einer Instanz des SQL Server-Datenbankmoduls in der SQL Server 2005-Onlinedokumentation.
Verwenden einer Firewall
Für die Kommunikation mit dem SQL Server-Browserdienst auf einem Server, auf dem eine Firewall verwendet wird, öffnen Sie neben dem von SQL Server verwendeten TCP-Port (z. B. 1433) den UDP-Port 1434. Weitere Informationen finden Sie unter Vorgehensweise: Konfigurieren einer Firewall für SQL Server-Zugriff in der SQL Server 2005-Onlinedokumentation.
Siehe auch
Aufgaben
Vorgehensweise: Starten und Beenden des SQL Server-Browserdienstes (SQL Server Express)