Servicio de navegador de SQL Server
- 03/14/2017
- 6 minutos para leer
-
- . m
- M
- M
- J
- c
-
+3
Aplica a: SQL Server (todas las versiones soportadas) – Sólo Windows Azure SQL Managed Instance
El programa SQL ServerBrowser se ejecuta como un servicio de Windows. SQL Server Browser escucha las solicitudes entrantes de recursos de Microsoft SQL Server y proporciona información sobre las instancias de SQL Server instaladas en el equipo. SQL Server Browser contribuye a las siguientes acciones:
-
Buscar una lista de servidores disponibles
-
Conectarse a la instancia de servidor correcta
-
Conectarse a los puntos finales de conexión de administrador dedicado (DAC)
Para cada instancia del motor de base de datos y SSAS, el servicio SQL Server Browser (sqlbrowser) proporciona el nombre de la instancia y el número de versión. El explorador de SQL Server se instala con SQL Server.
El explorador de SQL Server puede configurarse durante la instalación o mediante el Administrador de configuración de SQL Server. De forma predeterminada, el servicio SQL Server Browser se inicia automáticamente:
-
Cuando se actualiza una instalación.
-
Cuando se instala en un clúster.
-
Cuando se instala una instancia con nombre del motor de base de datos, incluidas todas las instancias de SQL Server Express.
-
Al instalar una instancia con nombre de Analysis Services.
Contexto
Antes de SQL Server 2000 (8.x), sólo se podía instalar una instancia de SQL Server en un equipo. SQL Server escuchaba las peticiones entrantes en el puerto 1433, asignado a SQL Server por la Autoridad de Números Asignados de Internet (IANA) oficial. Sólo una instancia de SQL Server puede utilizar un puerto, por lo que cuando SQL Server 2000 (8.x) introdujo la compatibilidad con varias instancias de SQL Server, se desarrolló el protocolo de resolución de SQL Server (SSRP) para escuchar en el puerto UDP 1434. Este servicio de escucha respondía a las peticiones de los clientes con los nombres de las instancias instaladas y los puertos o tuberías con nombre utilizados por la instancia. Para resolver las limitaciones del sistema SSRP, SQL Server 2005 (9.x) introdujo el servicio SQL Server Browser en sustitución de SSRP.
Cómo funciona SQL Server Browser
Cuando se inicia una instancia de SQL Server, si el protocolo TCP/IP está habilitado para SQL Server, se asigna al servidor un puerto TCP/IP. Si el protocolo de tuberías con nombre está habilitado, SQL Server escucha en una tubería con nombre específica. Este puerto, o «tubería», es utilizado por esa instancia específica para intercambiar datos con las aplicaciones cliente. Durante la instalación, el puerto TCP 1433 y la tubería \sql\query
se asignan a la instancia predeterminada, pero el administrador del servidor puede cambiarlos posteriormente mediante el Administrador de configuración de SQL Server. Dado que sólo una instancia de SQL Server puede utilizar un puerto o una tubería, se asignan diferentes números de puerto y nombres de tuberías para las instancias con nombre, incluido SQL Server Express. De forma predeterminada, cuando están activadas, tanto las instancias con nombre como SQL Server Express están configuradas para utilizar puertos dinámicos, es decir, se asigna un puerto disponible cuando se inicia SQL Server. Si se desea, se puede asignar un puerto específico a una instancia de SQL Server. Al conectarse, los clientes pueden especificar un puerto específico; pero si el puerto se asigna dinámicamente, el número de puerto puede cambiar en cualquier momento en que se reinicie SQL Server, por lo que el número de puerto correcto es desconocido para el cliente.
Al iniciarse, SQL Server Browser se inicia y reclama el puerto UDP 1434. El explorador de SQL Server lee el registro, identifica todas las instancias de SQL Server en el equipo y anota los puertos y las tuberías con nombre que utilizan. Cuando un servidor tiene dos o más tarjetas de red, SQL Server Browser devuelve el primer puerto habilitado que encuentra para SQL Server. SQL Server Browser admite ipv6 e ipv4.
Cuando los clientes de SQL Server solicitan recursos de SQL Server, la biblioteca de red del cliente envía un mensaje UDP al servidor utilizando el puerto 1434. El navegador de SQL Server responde con el puerto TCP/IP o la tubería con nombre de la instancia solicitada. A continuación, la biblioteca de red de la aplicación cliente completa la conexión enviando una solicitud al servidor mediante el puerto o la tubería con nombre de la instancia deseada.
Para obtener información sobre el inicio y la detención del servicio del explorador de SQL Server, consulte Libros de SQL Server en línea.
Uso del explorador de SQL Server
Si el servicio del explorador de SQL Server no se está ejecutando, aún podrá conectarse a SQL Server si proporciona el número de puerto o la tubería con nombre correctos. Por ejemplo, puede conectarse a la instancia predeterminada de SQL Server con TCP/IP si se está ejecutando en el puerto 1433.
Sin embargo, si el servicio SQL Server Browser no se está ejecutando, las siguientes conexiones no funcionan:
-
Cualquier componente que intente conectarse a una instancia con nombre sin especificar completamente todos los parámetros (como el puerto TCP/IP o la tubería con nombre).
-
Cualquier componente que genere o pase información de la instancia del servidor que pueda ser utilizada posteriormente por otros componentes para reconectarse.
-
Conectarse a una instancia con nombre sin proporcionar el número de puerto o la tubería.
-
DAC a una instancia con nombre o a la instancia predeterminada si no se utiliza el puerto TCP/IP 1433.
-
El servicio de redirección OLAP.
-
Enumeración de servidores en SQL Server Management Studio, Enterprise Manager o Query Analyzer.
Si utiliza SQL Server en un escenario cliente-servidor (por ejemplo, cuando su aplicación accede a SQL Server a través de una red), si detiene o desactiva el servicio de explorador de SQL Server, debe asignar un número de puerto específico a cada instancia y escribir el código de su aplicación cliente para utilizar siempre ese número de puerto. Este enfoque tiene los siguientes problemas:
-
Debe actualizar y mantener el código de la aplicación cliente para asegurarse de que se conecta al puerto adecuado.
-
El puerto que elija para cada instancia puede ser utilizado por otro servicio o aplicación en el servidor, haciendo que la instancia de SQL Server no esté disponible.
Clustering
El navegador de SQL Server no es un recurso en clúster y no admite la conmutación por error de un nodo de clúster a otro. Por lo tanto, en el caso de un clúster, SQL Server Browser debe instalarse y activarse para cada nodo del clúster. En los clústeres, SQL Server Browser escucha en IP_ANY.
Nota
Al escuchar en IP_ANY, cuando se habilita la escucha en IPs específicas, el usuario debe configurar el mismo puerto TCP en cada IP, porque SQL Server Browser devuelve el primer par IP/puerto que encuentra.
Instalación, desinstalación y ejecución desde la línea de comandos
El servicio SQL Server Browser se desinstala cuando se elimina la última instancia de SQL Server.
El explorador de SQL Server puede iniciarse desde la línea de comandos para solucionar problemas, utilizando el modificador -c:
<drive>\<path>\sqlbrowser.exe -c
Seguridad
Privilegios de la cuenta
El explorador de SQL Server escucha en un puerto UDP y acepta solicitudes no autenticadas mediante el protocolo de resolución de SQL Server (SSRP). El explorador de SQL Server debe ejecutarse en el contexto de seguridad de un usuario con pocos privilegios para minimizar la exposición a un ataque malicioso. La cuenta de inicio de sesión puede cambiarse mediante el Administrador de configuración de SQL Server. Los derechos de usuario mínimos para SQL Server Browser son los siguientes:
-
Denegar el acceso a este equipo desde la red
-
Denegar el inicio de sesión localmente
-
Denegar el inicio de sesión como trabajo por lotes
-
Denegar el inicio de sesión a través de Terminal Services
-
Iniciar sesión como un servicio
-
Leer y escribir las claves del registro de SQL Server relacionadas con la comunicación de red (puertos y tuberías)
Cuenta predeterminada
La instalación configura el explorador de SQL Server para utilizar la cuenta seleccionada para los servicios durante la instalación. Otras cuentas posibles son las siguientes:
-
Cualquier cuenta de dominio
-
La cuenta de servicio local
-
La cuenta del sistema local (no se recomienda porque tiene privilegios innecesarios)
Ocultar SQL Server
Las instancias ocultas son instancias de SQL Server que sólo admiten conexiones de memoria compartida. En el caso de SQL Server, establezca la bandera HideInstance
para indicar que el explorador de SQL Server no debe responder con información sobre esta instancia de servidor.
Utilizar un cortafuegos
Para comunicarse con el servicio del explorador de SQL Server en un servidor situado detrás de un cortafuegos, abra el puerto UDP 1434, además del puerto TCP utilizado por SQL Server (por ejemplo, 1433). Para obtener información sobre cómo trabajar con un cortafuegos, consulte «Cómo: Configurar un cortafuegos para el acceso a SQL Server» en SQL Server Books Online.
Vea también
Protocolos de red y bibliotecas de red