Service SQL Server Browser

Le programme SQL Server Browser s'exécute en tant que service Windows. SQL Server SQL Browser est à l'écoute des demandes entrantes pour les ressources Microsoft 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 de 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 et fournit ce service pour les versions antérieures de SQL Server s'exécutant sur cet ordinateur, à compter de SQL Server 7.0.

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

  • lors de la mise à niveau d'une installation ;

  • lors d'une installation côte à côte avec une instance de SQL Server 2000 ;

  • lors d'une installation sur un cluster ;

  • lors de l'installation d'une instance nommée du moteur de base de données SQL Server, notamment toutes les instances de SQL Server Express ;

  • lors de l'installation d'une instance nommée d'Analysis Services.

Historique

Avant SQL Server 2000, seule une 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 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 1434. Ce service d'écoute répondait 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 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 les protocoles TCP/IP ou VIA sont activés 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 de communication », est utilisé par cette instance spécifique pour l'échange de données avec les applications clientes. Au cours de l'installation, le port TCP 1433 et le canal de communication \sql\query sont affectés à l'instance par défaut, mais ceux-ci peuvent être modifiés ultérieurement par l'administrateur du serveur via le 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. Par défaut, lorsque les instances nommées et SQL Server Express sont activés, ils sont configurés pour utiliser des ports dynamiques. En d'autres termes, un port disponible est attribué lors du démarrage de SQL Server. Si nécessaire, un port spécifique peut être attribué à une instance de SQL Server. Au moment de la connexion, les clients peuvent désigner un port spécifique. 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 réclame 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. Lorsqu'un serveur est équipé de deux cartes réseau ou plus, SQL Server Browser renvoie le premier port activé qu'il détecte pour SQL Server. SQL Server Browser pend en charge les protocoles Ipv6 et ipv4.

Lorsque les clients SQL Server demandent des ressources SQL Server, la bibliothèque réseau cliente envoie un message UDP au serveur à l'aide du 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.

Pour plus d'informations sur le démarrage et l'arrêt du service SQL Server Browser, consultez Procédure : démarrer et arrêter le service SQL Server Browser.

Important

Le protocole VIA est déconseillé. Cette fonctionnalité sera supprimée dans une prochaine version de Microsoft SQL Server. Évitez d'utiliser cette fonctionnalité dans de nouveaux travaux de développement et prévoyez de modifier les applications qui utilisent actuellement cette fonctionnalité.

Utilisation de 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, à condition d'indiquer le numéro de port ou le canal nommé correct. Par exemple, vous pouvez 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 qui pourraient être utilisées ultérieurement par d'autres composants 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 redirecteur OLAP ;

  • énumération de serveurs dans SQL Server Management Studio, Enterprise Manager ou dans l'Analyseur de requêtes.

Si vous utilisez SQL Server dans un scénario client-serveur (par exemple, lorsque votre application accède à SQL Server à travers un réseau) et que vous arrêtez ou désactivez le service SQL Server Browser, vous devez attribuer un numéro de port spécifique à chaque instance et écrire le code de votre application cliente afin de toujours 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 bon port.

  • 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.

Installation côte à côte avec SQL Server 2000

Dans SQL Server 2000, l'identification des points de terminaison d'une connexion serveur est assurée par le service SQL Server. Dans SQL Server 2005, cette fonction est remplacée par le service SQL Server Browser. Si vous installez SQL Server sur un ordinateur qui exécute également SQL Server 2000 ou MSDE, vous devez vous assurer que SQL Server 2000 ou MSDE est mis à niveau avec le Service Pack 3a (SP3a) ou une version ultérieure. Les versions antérieures au SP3a ne permettent pas un partage correct du port 1434 et risquent de rendre vos instances de SQL Server indisponibles aux applications clientes émettant des demandes. Même si vous avez la possibilité de modifier l'ordre de démarrage des services de sorte que le service SQL Server Browser démarre avant SQL Server 2000 ou MSDE, nous vous recommandons de mettre à jour toutes les versions antérieures de SQL Server avec le Service Pack le plus récent.

Lorsqu'une instance de SQL Server 2000 n'ayant pas été mise à jour avec le Service Pack 3a est installée sur l'ordinateur, le service d'écoute de SQL Server 2000 démarre si SQL Server Browser n'est pas en cours d'exécution. Si le service SQL Server Browser démarre après le service d'écoute, il attend 5 secondes que SQL Server 2000 abandonne le port 1434. Si cela n'aboutit pas, SQL Server Browser ne démarre pas. Pour résoudre ce problème avec les versions de SQL Server 2000 antérieures au Service Pack 3a, arrêtez SQL Server 2000, démarrez SQL Server Browser, puis redémarrez SQL Server 2000. Toutefois, dans la mesure où le service d'écoute de SQL Server 2000 tentera toujours de démarrer sur le port 1434, il est recommandé de mettre à niveau l'instance SQL Server 2000 avec le Service Pack 3a dés que possible.

SQL Server 7.0 ne disposant pas de fonctionnalités analogues, il ne se produit aucun conflit avec SQL Server Browser.

Clustering

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

Note

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.

Installation, désinstallation et exécution à partir de la ligne de commande

Par défaut, le programme SQL Server Browser est installé à l'emplacement C:\Program Files\Microsoft SQL Server\100\Shared\sqlbrowser.exe. Si SQL Server 2000 est installé sur l'ordinateur mais qu'il n'a pas été mis à niveau avec le Service Pack 3, et si l'instance de SQL Server 2000 ne fait pas l'objet d'une mise à niveau, SQL Server 2000 doit être arrêté pendant l'installation de SQL Server. Si SQL Server 2000 est en cours d'exécution, SQL Server Browser ne peut pas démarrer et réclamer le port 1434, et l'installation risque d'échouer pour cause de connectivité insuffisante.

Le service SQL Server Browser est désinstallé dés que la dernière instance de SQL Server est supprimée. Les instances de SQL Server 2000 retrouvent leur comportement d'origine.

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

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

Sécurité

Privilèges de compte

SQL Server Browser est à l'écoute d'un port UDP et accepte les demandes non authentifiées via le 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'une 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

  • Refuser les ouvertures de session locales

  • Refuser l'ouverture de session en tant que programme de traitement par lots

  • Interdire l'ouverture de session par les services Terminal Server

  • Ouvrir une session en tant que service

  • Lire et écrire les clés de Registre SQL Server relatives à la communication réseau (ports et canaux de communication)

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 domain\local

  • Le compte de service local (non disponible sur les plateformes W2K)

  • Le compte système local (non recommandé car doté de privilèges inutiles)

Masquage de 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. SQL Server Browser prend également en charge la méthode de masquage d'instances de SQL Server 2000, activée en définissant l'option HideServer via l'utilitaire réseau du serveur. Pour plus d'informations sur la configuration de l'option HideServer, consultez « Procédure : masquer une instance du moteur de base de données SQL Server » dans la documentation en ligne de SQL Server.

Utilisation d'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 en plus du port TCP utilisé par SQL Server (par ex., le port 1433). Pour plus d'informations sur l'utilisation d'un pare-feu, consultez « Procédure : configurer un pare-feu pour accéder à SQL Server » dans la documentation en ligne de SQL Server.