Servicio SQL Server Browser
El programa SQL Server Browser se ejecuta como un servicio de Windows. SQL Server Browser escucha las solicitudes entrantes de recursos de Microsoft SQL Server y proporciona información acerca de las instancias de SQL Server instaladas en el equipo. SQL Server Browser permite efectuar las siguientes acciones:
Examinar una lista de los servidores disponibles
Conectarse a la instancia correcta del servidor
Conectarse a los extremos de la conexión de administrador dedicada (DAC)
Para cada instancia de 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. SQL Server Browser se instala con SQL Server y proporciona este servicio para las versiones anteriores de SQL Server que se ejecutan en el equipo, empezando por SQL Server 7.0.
SQL Server Browser se puede configurar durante la instalación o utilizando el Administrador de configuración de SQL Server. De manera predeterminada, el servicio SQL Server Browser se inicia automáticamente:
Cuando se actualiza una instalación.
Cuando se instala simultáneamente con una instancia de SQL Server 2000.
Cuando se instala en un clúster.
Cuando se instala una instancia con nombre de SQL Server Database Engine (Motor de base de datos de SQL Server) que incluye todas las instancias de SQL Server Express.
Cuando se instala una instancia con nombre de Analysis Services.
Fondo
En versiones anteriores a SQL Server 2000, solo una instancia de SQL Server podía instalarse en un equipo. SQL Server escuchaba las solicitudes de entrada en el puerto 1433, que es el puerto asignado oficialmente a SQL Server por el organismo Internet Assigned Numbers Authority (IANA). Solo una instancia de SQL Server puede utilizar un puerto, de modo que cuando SQL Server 2000 introdujo la compatibilidad con varias instancias de SQL Server, se desarrolló el Protocolo de resolución deSQL Server (SSRP) para escuchar en el puerto UDP 1434. Este servicio de escucha respondía a las solicitudes del cliente con los nombres de las instancias instaladas y los puertos o canalizaciones con nombre utilizadas por la instancia. Para solucionar estas limitaciones del sistema SSRP, SQL Server 2005 incluyó el servicio SQL Server Browser como sustituto de SSRP.
Funcionamiento de SQL Server Browser
Cuando se inicia una instancia de SQL Server, se asigna un puerto TCP/IP al servidor si los protocolos TCP/IP o VIA están habilitados para SQL Server. Si el protocolo de canalizaciones con nombre está habilitado, SQL Server escucha en una canalización con nombre específica. Esa instancia específica utiliza dicho puerto, o "canalización", para intercambiar datos con las aplicaciones cliente. Durante la instalación, el puerto TCP 1433 y la canalización \sql\query se asignan a la instancia predeterminada, pero el administrador del servidor puede cambiar estos valores más tarde mediante el Administrador de configuración de SQL Server. Puesto que sólo una instancia de SQL Server puede utilizar un puerto o una canalización, se asignan números de puerto y nombres de canalizaciones diferentes para las instancias con nombre, incluido SQL Server Express. De forma predeterminada, cuando están habilitados, las instancias con nombre y SQL Server Express están configurados para utilizar puertos dinámicos, por lo que se asigna un puerto disponible cuando se inicia SQL Server. Si lo desea, puede asignarse un puerto determinado a una instancia de SQL Server. Al conectarse, los clientes pueden especificar un puerto concreto, pero, si el puerto se asigna dinámicamente, el número de puerto puede cambiar siempre que se reinicie SQL Server, por lo que el cliente desconoce el número de puerto correcto.
En el inicio, SQL Server Browser se inicia y reclama el puerto UDP 1434. SQL Server Browser lee el Registro, identifica todas las instancias de SQL Server en el equipo y registra los puertos y las canalizaciones 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 es compatible con Ipv6 e Ipv4.
Cuando los clientes de SQL Server solicitan los recursos de SQL Server, la biblioteca de red del cliente envía un mensaje UDP al servidor utilizando el puerto 1434. SQL Server Browser responde con el puerto TCP/IP o canalización con nombre de la instancia solicitada. Entonces, la biblioteca de red en la aplicación cliente completa la conexión enviando una solicitud al servidor mediante el puerto o la canalización con nombre de la instancia deseada.
Para obtener información acerca de cómo iniciar y detener el servicio SQL Server Browser, consulte Cómo iniciar y detener el servicio Explorador de SQL Server.
Importante |
---|
El protocolo VIA está desusado. Esta característica se quitará en una versión futura de Microsoft SQL Server. Evite utilizar esta característica en nuevos trabajos de desarrollo y tenga previsto modificar las aplicaciones que actualmente la utilizan. |
Usar SQL Server Browser
Si el servicio SQL Server Browser no se está ejecutando, todavía puede conectarse a SQL Server si proporciona el número de puerto o la canalización con nombre correctos. Por ejemplo, puede conectarse a la instancia predeterminada de SQL Server mediante TCP/IP si se está ejecutando en el puerto 1433.
No obstante, si el servicio SQL Server Browser no se está ejecutando, no funcionan las siguientes conexiones:
Cualquier componente que intente conectarse a una instancia con nombre sin especificar completamente todos los parámetros (por ejemplo, un puerto TCP/IP o una canalización con nombre).
Cualquier componente que genere o pase información de servidor o de instancia que más adelante otros componentes podrían utilizar para volver a conectarse.
La conexión a una instancia con nombre sin proporcionar el número de puerto o la canalización.
DAC en una instancia con nombre o la instancia predeterminada si no se utiliza el puerto TCP/IP 1433.
El servicio redirector de OLAP.
La enumeración de servidores en SQL Server Management Studio, el Administrador corporativo o el Analizador de consultas.
Si utiliza SQL Server en un escenario cliente-servidor (por ejemplo, cuando su aplicación obtiene acceso a SQL Server a través de una red) o si detiene o deshabilita el servicio SQL Server Browser, debe asignar un número de puerto específico a cada instancia y escribir el código de la aplicación cliente para que siempre utilice ese número de puerto. Este enfoque plantea los siguientes problemas:
Debe actualizar y mantener el código de la aplicación cliente para asegurarse de que se conecta al puerto apropiado.
Otro servicio o aplicación del servidor puede utilizar el puerto que elija para cada instancia, lo que hará que la instancia de SQL Server no esté disponible.
Instalación simultánea con SQL Server 2000
En SQL Server 2000, la identificación de los extremos de conexión del servidor la lleva a cabo el servicio SQL Server. SQL Server 2005 ha reemplazado esa función por el servicio SQL Server Browser. Si instala SQL Server en un equipo en el que también se ejecuta SQL Server 2000 o MSDE, debe asegurarse de que SQL Server 2000 o MSDE estén actualizados al Service Pack 3a (SP3a) o posterior. Las versiones anteriores al SP3a no comparten correctamente el puerto 1434 y es posible que no permitan que las instancias de SQL Server estén disponibles para las aplicaciones cliente que las soliciten. Aunque puede cambiar el orden de inicio de los servicios para que el servicio SQL Server Browser se inicie antes que SQL Server 2000 o MSDE, la solución más recomendable consiste en actualizar todas las versiones antiguas de SQL Server con el Service Pack más reciente.
Cuando se instala en el equipo una instancia de SQL Server 2000 que no está actualizada al Service Pack 3a como mínimo, si SQL Server Browser no se está ejecutando, el servicio de escucha de SQL Server 2000 se inicia. Si SQL Server Browser se inicia después del servicio de escucha, esperará cinco segundos hasta que SQL Server 2000 libere el puerto 1434. Si eso no se produce, SQL Server Browser no puede iniciarse. Para solucionar este problema con las versiones de SQL Server 2000 anteriores al Service Pack 3a, detenga SQL Server 2000, inicie SQL Server Browser y, a continuación, reinicie SQL Server 2000. El servicio de escucha de SQL Server 2000 sigue intentando iniciarse en el puerto 1434, por lo que la instancia de SQL Server 2000 debería actualizarse al Service Pack 3a lo antes posible.
SQL Server 7.0 no dispone de ninguna capacidad similar y no tiene ningún conflicto con SQL Server Browser.
Agrupación en clústeres
SQL Server Browser no es un recurso agrupado y no admite la conmutación por error de un nodo del clúster al otro. Por 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
Cuando se escucha en IP_ANY y se habilita la escucha en unas direcciones IP específicas, el usuario debe configurar el mismo puerto TCP en cada IP porque SQL Server devuelve el primer par de IP/puerto que detecta.
Instalar, desinstalar y ejecutar desde la línea de comandos
De forma predeterminada, el programa SQL Server Browser se instala en C:\Archivos de programa\Microsoft SQL Server\100\Shared\sqlbrowser.exe. Si SQL Server 2000 está instalado en el equipo pero no está actualizado al Service Pack 3, y la instancia de SQL Server 2000 no se actualiza, SQL Server 2000 debería detenerse durante la instalación de SQL Server. Si SQL Server 2000 se está ejecutando, SQL Server Browser no puede iniciarse ni reclamar el puerto 1434, y puede producirse un error en la instalación debido a que no hay conectividad.
El servicio SQL Server Browser se desinstala cuando se quita la última instancia de SQL Server. Las instancias de SQL Server 2000 reanudan su comportamiento original.
SQL Server Browser puede iniciarse desde el símbolo del sistema para solucionar problemas mediante el modificador -c:
<drive>\<path>\sqlbrowser.exe -c
Seguridad
Privilegios de cuenta
SQL Server Browser escucha en un puerto UDP y acepta solicitudes no autenticadas mediante el protocolo de resolución de SQL Server (SSRP). SQL Server Browser debe ejecutarse en el contexto de seguridad de un usuario con pocos privilegios para minimizar el riesgo de sufrir un ataque malintencionado. La cuenta de inicio de sesión puede cambiarse mediante el Administrador de configuración de SQL Server. Los derechos mínimos de usuario para SQL Server Browser son:
Denegar el acceso desde la red a este equipo
Denegar inicio de sesión localmente
Denegar inicio de sesión como un trabajo por lotes
Denegar inicio de sesión a través de Terminal Services
Iniciar sesión como servicio
Leer y escribir las claves del Registro de SQL Server relacionadas con la comunicación de red (puertos y canalizaciones)
Cuenta predeterminada
El programa de instalación configura SQL Server Browser de forma que utilice la cuenta seleccionada para los servicios durante la instalación. Entre otras posibles cuentas se incluyen las siguientes:
Cualquier cuenta de dominio o local
La cuenta de servicio local (no disponible en plataformas W2K)
La cuenta de sistema local (no recomendada, ya que tiene privilegios innecesarios)
Ocultar SQL Server
Las instancias ocultas son instancias de SQL Server que sólo admiten las conexiones de memoria compartida. Para SQL Server, establezca la marca HideInstance para señalar que SQL Server Browser no debería responder con información acerca de esta instancia del servidor. SQL Server Browser también admite el método SQL Server 2000 para ocultar las instancias habilitadas estableciendo la opción HideServer a través de la herramienta de red de servidor. Para obtener información sobre cómo configurar la opción HideServer, consulte "Cómo ocultar una instancia de SQL Server Database Engine (Motor de base de datos de SQL Server)" en los Libros en pantalla de SQL Server.
Utilizar un firewall
Para comunicarse con el servicio SQL Server Browser en un servidor protegido por un firewall, abra el puerto UDP 1434 y el puerto TCP utilizado por SQL Server (p. ej., 1433). Para obtener información sobre cómo trabajar con un firewall, consulte "Cómo configurar un firewall para SQL Server Access" en los Libros en pantalla de SQL Server.