Service SQL Server Browser

S’applique à : SQL Server - Windows uniquement

Le programme SQL Server Browser s’exécute en tant que service Windows. SQL Server Browser écoute les demandes entrantes de ressources SQL Server et fournit des informations sur les instances SQL Server installées sur l’ordinateur. SQL Server Browser contribue aux actions suivantes :

  • Affichage de la liste des serveurs disponibles.
  • Connexion à l’instance correcte du serveur.
  • Connexion aux points de terminaison d’une connexion administrateur dédiée (DAC).

Pour chaque instance du moteur de base de données et SQL Server Analysis Services (SSAS), le service SQL Server Browser (sqlbrowser) fournit le nom de l’instance et le numéro de version. SQL Server Browser est installé avec SQL Server.

SQL Server Browser peut être configuré pendant l’installation ou en utilisant le Gestionnaire de configuration. Par défaut, le service SQL Server Browser démarre automatiquement :

  • lors de la mise à niveau d'une installation ;
  • lors d'une installation sur un cluster ;
  • Lors de l’installation d’une instance nommée du moteur de base de données, notamment toutes les instances de SQL Server Express ;
  • lors de l’installation d’une instance nommée de SSAS.

Background

Avant SQL Server 2000 (8.x), une seule instance de SQL Server pouvait être installée sur un ordinateur. SQL Server était à l’écoute des demandes entrantes sur le port 1433, attribué à SQL Server par l’IANA (Internet Assigned Numbers Authority). L’utilisation d’un port étant limitée à une seule instance de SQL Server, lorsque SQL Server 2000 (8.x) a introduit la prise en charge de plusieurs instances de SQL Server, le protocole SSRP (SQL Server Resolution Protocol) a été développé afin de permettre une écoute sur le port UDP (User Datagram Protocol) 1434. Ce service d’écoute répond aux demandes des clients avec les noms des instances installées et les ports ou les canaux nommés utilisés par l’instance.

Pour parer aux limites du système SSRP, SQL Server 2005 (9.x) introduit le service SQL Server Browser en remplacement de SSRP.

Fonctionnement de SQL Server Browser

Au moment du démarrage d’une instance de SQL Server, si le protocole TCP/IP est activé pour SQL Server, un port TCP/IP est attribué au serveur. Si le protocole des canaux nommés est activé, SQL Server est à l'écoute d'un canal nommé spécifique. Ce port ou canal nommé est utilisé par cette instance spécifique pour l'échange de données avec les applications clientes. Le port TCP/IP 1433 et le canal \sql\query sont attribués à l’instance par défaut pendant l’installation. L’administrateur du serveur peut modifier le port ou le canal nommé à l’aide du Gestionnaire de configuration SQL Server.

Dans la mesure où un port ou un canal de communication ne peut être utilisé que par une seule instance de SQL Server , différents numéros de ports et noms de canaux de communication sont attribués pour les instances nommées, y compris SQL Server Express. Lorsque cette option est activée, les instances nommées et SQL Server Express sont configurés pour utiliser des ports dynamiques par défaut. Autrement dit, un port disponible est affecté au démarrage de SQL Server.

Si nécessaire, un port spécifique peut être attribué à une instance de SQL Server. Les clients peuvent définir un port spécifique quand ils se connectent à SQL Server. Toutefois, si le port est attribué dynamiquement, le numéro de port peut changer lors de chaque redémarrage de SQL Server, auquel cas le numéro de port correct est inconnu du client.

Lors du démarrage, SQL Server Browser revendique le port UDP 1434. SQL Server Browser lit le Registre, identifie toutes les instances de SQL Server sur l’ordinateur, puis note les ports et autres canaux nommés qu’elles utilisent. Quand un serveur est équipé de deux cartes réseau ou plus, SQL Server Browser retourne le premier port activé qu’il détecte pour SQL Server. SQL Server Browser prend en charge les protocoles ipv6 et ipv4.

Quand les clients SQL Server demandent des ressources SQL Server, la bibliothèque réseau cliente envoie un message UDP au serveur en utilisant le port 1434. SQL Server Browser répond avec le port TCP/IP ou canal nommé de l’instance demandée. La bibliothèque réseau de l'application cliente établit alors la connexion en envoyant une demande au serveur en utilisant le port ou le canal nommé de l'instance souhaitée.

Découvrez comment démarrer et arrêter le service SQL Server Browser dans l’article Démarrer, arrêter, suspendre, reprendre, redémarrer les services SQL Server.

Utiliser SQL Server Browser

Si le service SQL Server Browser n’est pas en cours d’exécution, vous pouvez quand même vous connecter à SQL Server si vous fournissez le numéro de port ou le canal nommé approprié. Vous pouvez par exemple vous connecter à l’instance par défaut de SQL Server via le protocole TCP/IP si elle s’exécute sur le port 1433.

Toutefois, si le service SQL Server Browser n’est pas en cours d’exécution, les connexions suivantes ne fonctionnent pas :

  • tout composant essayant de se connecter à une instance nommée sans spécifier intégralement tous les paramètres (tels que le port TCP/IP ou le canal nommé) ;
  • Tout composant générant ou transmettant des informations serveur/instance que d'autres composants pourraient utiliser ultérieurement pour se reconnecter ;
  • connexion à une instance nommée sans fournir le numéro de port ou le canal de communication ;
  • connexion administrateur dédiée (DAC) à une instance nommée si le port TCP/IP 1433 n’est pas utilisé ;
  • Service de redirecteur OLAP (Online Analytical Processing).
  • énumération des serveurs dans SQL Server Management Studio ou Azure Data Studio.

Supposons que vous utilisez SQL Server dans un scénario client-serveur (par exemple, lorsque votre application accède à SQL Server sur un réseau). Si vous arrêtez ou désactivez le service SQL Server Browser, vous devez affecter un numéro de port spécifique à chaque instance et écrire le code de votre application cliente pour utiliser ce numéro de port. Cette approche présente les inconvénients suivants :

  • Vous devez mettre à jour et maintenir le code de l’application cliente pour vous assurer qu’elle se connecte au port correct.
  • Le port que vous choisissez pour chaque instance peut être utilisé par un autre service ou une autre application présents sur le serveur, ce qui entraîne la non-disponibilité de l'instance de SQL Server.

Clusters et SQL Server Browser

SQL Server Browser n’est pas une ressource de cluster et ne prend pas en charge le basculement d’un nœud de cluster à l’autre. Par conséquent, si un cluster est présent, SQL Server Browser doit être installé et activé pour chaque nœud de cluster. Dans les clusters, SQL Server Browser est à l’écoute sur IP_ANY.

Remarque

Dans ce cas, si vous activez l'écoute sur des ports IP spécifiques, l'utilisateur doit configurer le même port TCP sur chaque adresse IP, car SQL Server Browser renvoie la première paire IP/port qu'il détecte.

Installer, désinstaller et exécuter à partir de la ligne de commande

Par défaut, le programme SQL Server Browser est installé dans C:\Program Files (x86)\Microsoft SQL Server\90\Shared\sqlbrowser.exe.

Le service de navigateur SQL Server est désinstallé lorsque la dernière instance de SQL Server est supprimée.

SQL Server Browser peut être démarré à partir de l’invite de commandes à des fins de dépannage au moyen du commutateur -c :

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

Sécurité

Le service SQL Server Browser est indispensable pour faciliter la communication réseau avec les instances du SQL Server.

Les mesures de sécurité du service SQL Server Browser sont les suivantes :

  • Configuration des pare-feu pour autoriser son trafic.
  • Limitation de l’accès aux adresses IP de confiance
  • Mises à jour régulières des vulnérabilités de correctifs.
  • En outre, il est essentiel d’implémenter des stratégies d’authentification et d’autorisation fortes pour empêcher tout accès non autorisé et maintenir l’intégrité de votre environnement SQL Server.

Privilèges de compte

SQL Server Browser est à l’écoute d’un port UDP et accepte les demandes non authentifiées à l’aide du protocole SSRP (SQL Server Resolution Protocol). SQL Server Browser doit être exécuté dans le contexte de sécurité d’un utilisateur doté de faibles privilèges afin de limiter les risques d’attaque malveillante. Le compte de connexion peut être modifié à partir du gestionnaire de configuration SQL Server.

Les droits d’utilisateur minimaux pour SQL Server Browser sont les suivants :

  • Refuser l’accès à cet ordinateur à partir du réseau.
  • Refusez la connexion locale.
  • Refusez la connexion par programme de traitement par lots.
  • Refuser l’ouverture de session par les services Terminal Server.
  • Se connecter en tant que service.
  • Lire et écrire les clés de Registre SQL Server relatives à la communication réseau (ports et canaux).

Compte par défaut

Le programme d’installation configure SQL Server Browser de sorte qu’il utilise le compte sélectionné pour les services au cours de l’installation. Les autres comptes possibles sont les suivants :

  • Tout compte domaine\local.
  • Le compte de service local.
  • Le compte système local (non recommandé, car doté de privilèges inutiles).

Masquer SQL Server

Les instances masquées sont des instances de SQL Server qui ne prennent en charge que les connexions de mémoire partagée. Pour SQL Server, définissez l’indicateur HideInstance pour indiquer que SQL Server Browser ne doit pas répondre par des informations sur cette instance de serveur.

Utiliser un pare-feu

Pour communiquer avec le service SQL Server Browser sur un serveur situé derrière un pare-feu, ouvrez le port UDP 1434 et le port TCP/IP utilisé par SQL Server (comme le port 1433). Pour plus d’informations sur l’utilisation d’un pare-feu, consultez Configurer le Pare-feu Windows pour autoriser l’accès à SQL Server.