SQL Server-Browserdienst (Datenbankmodul und SSAS)
Das SQL Server-Browserprogramm wird als Windows-Dienst ausgeführt. Der SQL Server-Browser lauscht auf eingehende Anforderungen für Microsoft SQL Server-Ressourcen und stellt Informationen zu SQL Server-Instanzen zur Verfügung, die auf dem Computer installiert sind. Der 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, dedicated administrator connection)
Der SQL Server-Browserdienst (sqlbrowser) stellt für jede Instanz von Database Engine (Datenbankmodul) und SSAS den Instanzennamen und die Versionsnummer bereit. Der SQL Server-Browser wird mit SQL Server installiert.
Der SQL Server-Browser kann während des Setups oder mithilfe des SQL Server-Konfigurations-Managers 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 Database Engine (Datenbankmodul)-Instanz, die alle Instanzen von SQL Server Express einschließt.
Beim Installieren einer benannten Instanz von Analysis Services.
Hintergrund
Vor SQL Server 2000 konnte lediglich 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 (IANA) zugewiesen wurde. Da ein Port nur von einer SQL Server-Instanz verwendet werden kann, wurde mit Einführung der Unterstützung mehrerer SQL Server-Instanzen in SQL Server 2000 das SQL Server Resolution Protocol (SSRP) zum Lauschen an UDP-Port 1434 entwickelt. Dieser Listenerdienst reagierte auf Clientanforderungen mit den Namen der installierten Instanzen und den von der Instanz verwendeten Ports bzw. Named Pipes. Aufgrund der begrenzten Funktionsweise des SSRP-Systems wurde der SQL Server-Browserdienst in SQL Server 2005 als Ersatz für SSRP eingeführt.
Funktionsweise von SQL Server-Browser
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, lauscht SQL Server an einer speziell benannten Pipe. Dieser Port oder "Pipe" wird von der betreffenden Instanz zum Datenaustausch mit Clientanwendungen verwendet. Bei der Installation werden der TCP-Port 1433 und die Pipe \sql\query der Standardinstanz zugewiesen, sie können jedoch zu einem späteren Zeitpunkt vom Serveradministrator mit dem 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 Express unterschiedliche Portnummern und Pipenamen zugewiesen. Wenn diese Funktion aktiviert ist, werden die beiden benannten Instanzen und SQL Server Express 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 bestimmter Port zugewiesen werden. Beim Verbindungsaufbau können Clients einen bestimmten 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 unbekannt bleibt.
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 Ports und Named Pipes. Wenn ein Server über zwei oder mehr Netzwerkkarten verfügt, gibt der SQL Server-Browser den ersten gefundenen aktivierten Port für SQL Server zurück. Der SQL Server-Browser unterstützt ipv6 und ipv4. Der SQL Server-Browser gibt keine Portinformationen für die Standardinstanz zurück.
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.
Weitere Informationen zum Starten und Beenden des SQL Server-Browserdiensts finden Sie unter Starten, Beenden, Anhalten, Fortsetzen und Neustarten des Datenbankmoduls, SQL Server-Agent oder des SQL Server-Browsers.
Verwenden von SQL Server-Browser
Wenn der SQL Server-Browserdienst nicht ausgeführt wird, können Sie dennoch eine Verbindung mit SQL Server herstellen, wenn Sie die richtige Anschlussnummer 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.
Wird der SQL Server-Browserdienst jedoch nicht ausgeführt, sind die folgenden Verbindungen nicht funktionsfähig:
Ein Verbindungsversuch einer beliebigen Komponente mit einer benannten Instanz ohne Angabe aller Parameter (z. B. des TCP/IP-Ports oder der Named Pipe).
Das Generieren oder Übergeben von Server- oder Instanzeninformationen, die später von anderen Komponenten für erneute Verbindungen 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, Enterprise Manager oder Query Analyzer.
Wenn Sie SQL Server in einem Client-zu-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 schreiben, dass immer dieser Port verwendet wird. 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.
Clustering
Beim SQL Server-Browser handelt es sich nicht um eine gruppierte Ressource, und ein Failover von einem Clusterknoten auf einen anderen wird nicht unterstützt. In einem Cluster sollte der SQL Server-Browser deshalb auf jedem Knoten des Clusters installiert und aktiviert werden. In Clustern lauscht auf jede SQL Server-Browser IP_ANY.
Hinweis |
---|
Wenn Sie bei der Überwachung von IP_ANY die Überwachung bestimmter IP-Adressen aktivieren, muss der Benutzer für jede IP-Adresse den gleichen TCP-Port konfigurieren, da der SQL Server-Browser die erste gefundene Kombination aus IP-Adresse und Port zurückgibt. |
Installieren, Deinstallieren und Ausführen über die Befehlszeile
Standardmäßig ist das SQL Server-Browserprogramm 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.
Der SQL Server-Browser kann zur Problembehandlung mit dem Schalter -c von der Eingabeaufforderung aus gestartet werden.
<drive>\<path>\sqlbrowser.exe -c
Sicherheit
Kontoberechtigungen
Der SQL Server-Browser lauscht an einem UDP-Port und akzeptiert nicht authentifizierte Anforderungen mithilfe von SSRP (SQL Server Resolution Protocol). 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. Das Anmeldekonto kann mithilfe des SQL Server-Konfigurations-Managers geändert werden. Für den SQL Server-Browser gelten die folgenden Mindestbenutzerrechte:
Zugriff vom Netzwerk auf diesen Computer verweigern
Lokal 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 die Verwendung des für die SQL Server Dienste ausgewählten Kontos konfiguriert. Weitere mögliche Konten sind u. a. die Folgenden:
Beliebige lokale Domänenkonten
Das Konto Lokaler Dienst
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 freigegebenen Speicherbereich unterstützen. Legen Sie für SQL Server das Flag HideInstance fest, um anzugeben, dass SQL Server-Browser nicht mit Informationen zu dieser Serverinstanz reagieren soll.
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 Port (z. B. 1433) den UDP-Port 1434. Informationen zum Umgang mit einer Firewall finden Sie unter "Vorgehensweise: Konfigurieren einer Firewall für SQL Server-Zugriff" in der SQL Server-Onlinedokumentation.