Service SQL Server Browser (moteur de base de données et SSAS)
Le programme SQL Server Browser s'exécute en tant que service Windows. SQL Server 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
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.
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 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 du service Analysis Services.
Arrière-plan
Avant SQL Server 2000, 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 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 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 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. SQL Server Browser ne retourne pas d'informations de port pour l'instance par défaut.
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 Démarrer, arrêter, suspendre, reprendre, redémarrer le moteur de base de données, SQL Server Agent ou le service SQL Server Browser.
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 de communication 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.
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.
[!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.
Installation, désinstallation et exécution à partir de la ligne de commande
Par défaut, le programme du navigateur SQL Server est installé dans C:\Program Files (x86)\Microsoft SQL Server\90\Shared\sqlbrowser.exe.
Le service SQL Server Browser est désinstallé dès que la dernière instance de SQL Server est supprimée.
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
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.
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.