Utilisation de SQL Server Browser

Mis à jour : 5 décembre 2005

SQL Server Browser s'exécute en tant que service Windows sur le serveur. SQL Server Browser est à l'écoute des requêtes entrantes relatives aux ressources SQL Server et fournit des informations sur les instances SQL Server installées sur l'ordinateur. SQL Server Browser contribue à trois actions :

  • 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, 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 2005 et fournit une assistance pour les versions antérieures de SQL Server s'exécutant sur cet ordinateur, en commençant par SQL Server 7.0.

Par défaut, le service SQL Server Browser n'est pas activé pour SQL Server Express. Vous pouvez procéder à la configuration initiale de SQL Server Browser à l'aide de l'outil Configuration de la zone de surface et gérer ce service par le biais du Gestionnaire de configuration SQL Server.

Avant-propos

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 1434. Ce service d'écoute répondait aux demandes client avec les noms des instances installées et les ports ou les canaux de communication nommés utilisés par l'instance. Pour parer aux limites du système SSRP, SQL Server 2005 fournit 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 de communication nommés est activé, SQL Server est à l'écoute d'un canal de communication 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 sont configurées pour utiliser des ports dynamiques, un port disponible est attribué lors du démarrage de SQL Server. Un port spécifique peut être attribué à une instance SQL Server. Au moment de la connexion, les clients peuvent spécifier le port souhaité. 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 SQL Server sur l'ordinateur, puis note les ports et autres canaux de communication nommés qu'elles utilisent. Lorsqu'un serveur est équipé de deux cartes réseau ou plus, SQL Server Browser renvoie tous les ports activés pour SQL Server. SQL Server 2005 et SQL Server Browser prennent en charge ipv6 et ipv4.

Lorsque des clients SQL Server 2000 et SQL Server 2005 demandent des ressources SQL Server, la bibliothèque réseau client envoie un message UDP au serveur en utilisant le port 1434. SQL Server Browser répond avec le port TCP/IP ou le canal de communication 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 de communication nommé de l'instance souhaitée.

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.

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 de communication nommée) ;
  • tout composant générant ou transmettant des informations serveur ou 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. cela concerne notamment la mise en miroir de données dans une instance nommée et la mise en cluster d'une instance nommée ;
  • connexions administrateur dédiées à une instance nommée ou l'instance par défaut si elle n'utilise pas le protocole TCP/IP port 1434.
  • 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 était 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, ils doivent être mis à niveau vers SP3 ou ultérieur. Les versions antérieures au SP3 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 de sorte que le service SQL Server Browser démarre avant SQL Server 2000 ou MSDE, la solution préconisée consiste à mettre à jour toutes les versions anciennes de SQL Server avec le Service Pack le plus récent.

Si la version de l'instance de SQL Server 2000 installée sur l'ordinateur est antérieure au Service Pack 3a et si le service SQL Server Browser n'est pas en cours d'exécution, le service d'écoute de SQL Server 2000 démarre. Si le service SQL Server Browser démarre après le service d'écoute, il attend cinq 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 SP3a, arrêtez SQL Server 2000, démarrez le service SQL Server Browser, puis redémarrez SQL Server 2000. Dans la mesure où le service d'écoute de SQL Server 2000 tentera toujours de démarrer sur le port 1434, il est souhaitable de mettre à niveau l'instance de SQL Server 2000 vers le Service Pack 3a ou une version ultérieure dans les plus brefs délais.

Il ne se produit aucun conflit entre SQL Server 7.0 et SQL Server Browser.

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\90\Shared\sqlbrowser.exe. Si SQL Server 2000 est installé sur l'ordinateur mais qu'il n'a pas été mis à niveau avec le SP3, et si l'instance 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 2005. Si SQL Server 2000 est en cours d'exécution, SQL Server Browser n'est pas en mesure de démarrer et de 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 lors que la dernière instance de SQL Server 2005 est supprimée. Les instances de SQL Server 2000 retrouvent leur comportement d'origine.

SQL Server Browser peut être démarré à partir de la ligne de commande 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 sur un port UDP et accepte les requêtes 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'une attaque malveillante. Par défaut, SQL Server Browser démarre à l'aide du compte Système local. Le compte d'ouverture de session peut être modifié à l'aide du programme des services Windows. Les droits d'utilisateur minimum pour SQL Server Browser sont les suivants :

  • Refuser l'accès à cet ordinateur à partir du réseau.
  • Refuser les ouvertures de session locales.
  • Refuser les ouvertures de session en tant que tâche.
  • Refuser les ouvertures de session via Terminal Services.
  • 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 SQL Server qui ne prennent en charge que les connexions de mémoire partagée. Pour SQL Server 2005, définissez la clé de registre 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, consultez Procédure : masquer une instance du Moteur de base de données SQL Server dans la documentation en ligne de SQL Server 2005.

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 exemple, le port 1433). Pour plus d'informations, consultez Procédure : configurer un pare-feu pour accéder à SQL Server dans la documentation en ligne de SQL Server 2005.

Voir aussi

Tâches

Procédure : démarrer et arrêter le service SQL Server Browser (SQL Server Express)

Aide et Informations

Assistance sur SQL Server 2005