Serviço Navegador do SQL Server

O programa Navegador do SQL Server é executado como um serviço do Windows. O Navegador do SQL Server escuta as solicitações de entrada dos recursos do Microsoft SQL Server e fornece informações sobre as instâncias instaladas do SQL Server no computador. O Navegador do SQL Server contribui para as seguintes ações:

  • Navegando em uma lista de servidores disponíveis

  • Conectando-se à instância de servidor correta

  • Conectando-se aos pontos de extremidade da conexão de administrador dedicada (DAC)

Para cada instância do Mecanismo de Banco de Dados e do SSAS, o serviço Navegador do SQL Server (sqlbrowser) fornece o nome da instância e o número da versão. O Navegador do SQL Server é instalado com o SQL Server e fornece este serviço para versões anteriores do SQL Server que estão em execução no computador, iniciando com o SQL Server 7.0.

O navegador do SQL Server pode ser configurado durante a instalação ou por meio do SQL Server Configuration Manager. Por padrão, o serviço Navegador do SQL Server é iniciado automaticamente:

  • Quando uma instalação é atualizada.

  • Durante a instalação lado a lado com uma instância do SQL Server 2000.

  • Ao ser instalado em um cluster.

  • Ao instalar uma instância nomeada do Mecanismo de banco de dados do SQL Server incluindo todas as instâncias do SQL Server Express.

  • Ao instalar uma instância nomeada do Analysis Services.

Plano de fundo

Antes do SQL Server 2000, apenas uma instância do SQL Server podia ser instalada em um computador. O SQL Server escutava as solicitações de entrada na porta 1433 e atribuía ao SQL Server pela IANA (Internet Assigned Numbers Authority) oficial. Apenas uma instância do SQL Server pode usar uma porta; por isso, quando o SQL Server 2000 introduziu suporte para várias instâncias do SQL Server, o protocolo SSRP (SQL Server Resolution Protocol) foi desenvolvido para escutar na porta UDP 1434. Esse serviço de escuta respondia a solicitações de clientes com o nome das instâncias instaladas e as portas ou pipes nomeados utilizados pela instância. Para resolver as limitações de sistema do SSRP, o SQL Server 2005 introduziu o serviço Navegador do SQL Server como um substituto para o SSRP.

Como trabalha o navegador do SQL Server

Quando uma instância do SQL Server for iniciada, se os protocolos TCP/IP ou VIA estiverem habilitados para o SQL Server, ao servidor será atribuído a uma porta de TCP/IP. Se o protocolo de pipes nomeados estiver habilitado, o SQL Server será reconhecido em um determinado pipe nomeado. Essa porta, ou "pipe", será utilizado por aquela instância específica para trocar dados com os aplicativos clientes. Durante a instalação, a porta 1433 no TCP e o pipe \sql\query são atribuídos à instância padrão, mas esses podem ser alterados posteriormente pelo administrador de servidor usando o SQL Server Configuration Manager. Devido a apenas uma instância do SQL Server poder usar uma porta ou um pipe, diferentes números de porta e nomes de pipe são atribuídos a instâncias nomeadas, inclusive o SQL Server Express. Por padrão, quando habilitado, ambas as instâncias nomeadas e o SQL Server Express são configurados para usar portas dinâmicas, ou seja, será atribuída uma porta disponível quando o SQL Server for iniciado. Se você desejar, pode-se atribuir uma porta específica a uma instância do SQL Server. Ao se conectar, os clientes podem determinar uma porta específica, mas se a porta for atribuída dinamicamente, o número da porta poderá ser alterado a qualquer momento em que o SQL Server for reinicializado. Portanto, o número correto da porta será desconhecido para o cliente.

Na inicialização, o Navegador do SQL Server é iniciado e reivindica a porta UDP 1434. O Navegador do SQL Server lê o Registro, identifica todas as instâncias do SQL Server existentes no computador e anota as portas e os pipes nomeados utilizados. Quando um servidor tiver dois ou mais cartões de rede, o Navegador do SQL Server retornará para a primeira porta habilitada que encontrar do SQL Server. O Navegador do SQL Server dá suporte ao IPv6 e ao IPv4.

Quando clientes do SQL Server solicitam recursos do SQL Server, a biblioteca de rede do cliente envia uma mensagem UDP para o servidor utilizando a porta 1434. O Navegador do SQL Server responde com a porta TCP/IP ou o pipe nomeado da instância solicitada. Em seguida, a biblioteca de rede no aplicativo cliente completa a conexão, enviando uma solicitação ao servidor utilizando a porta ou o pipe nomeado da instância desejada.

Para obter informações sobre como iniciar e interromper o serviço Navegador do SQL Server, consulte Como iniciar e parar o serviço Navegador do SQL Server.

Observação importanteImportante

O protocolo VIA foi preterido. Esse recurso será removido em uma versão futura do Microsoft SQL Server. Evite usar esse recurso em desenvolvimentos novos e planeje modificar os aplicativos que atualmente o utilizam.

Utilizando o Navegador do SQL Server

Se o serviço Navegador do SQL Server não estiver sendo executado, você ainda poderá se conectar ao SQL Server, caso forneça o número correto da porta ou o pipe nomeado. Por exemplo, você poderá se conectar à instância padrão do SQL Server com o TCP/IP se ele estiver sendo executado na porta 1433.

Porém, se o serviço Navegador do SQL Server não estiver sendo executado, as seguintes conexões não funcionarão:

  • Qualquer componente que tente conectar-se a uma instância nomeada sem especificar completamente todos os parâmetros (como a porta do TCP/IP ou o pipe nomeado).

  • Qualquer componente que gere ou passe informações de servidor\instância que possa ser utilizada posteriormente por outros componentes para se reconectar.

  • Conectando-se a uma instância nomeada sem fornecer o número da porta ou pipe.

  • Uma DAC para uma instância nomeada ou para uma instância padrão se não utilizar a porta 1433 do TCP/IP.

  • O serviço redirecionador do OLAP (Online Analytical Processing).

  • Enumerar servidores no SQL Server Management Studio, no Enterprise Manager ou no Query Analyzer.

Se você estiver usando o SQL Server em um cenário cliente-servidor (por exemplo, quando seu aplicativo estiver acessando o SQL Server por uma rede), caso você pare ou desabilite o serviço Navegador do SQL Server, você deverá atribuir um número de porta específico a cada instância e gravar seu código de aplicativo cliente para sempre usar aquele número de porta. Esta abordagem tem os seguintes problemas:

  • Você deve atualizar e manter o código de aplicativo cliente para assegurar que ele se conectará à porta correta.

  • A porta que você escolher para cada instância poderá ser utilizada por outro serviço ou aplicativo no servidor, tornando a instância do SQL Server indisponível.

Instalação lado a lado com o SQL Server 2000

No SQL Server 2000, a identificação dos pontos de extremidade da conexão com o servidor é executada pelo serviço do SQL Server. O SQL Server 2005 substitui aquela função com o serviço Navegador do SQL Server. Se você instalar o SQL Server em um computador que também esteja executando o SQL Server 2000 ou o MSDE (Microsoft Data Engine), verifique se o SQL Server 2000 ou o MSDE está atualizado com o Service Pack 3a (SP3a) ou posterior. As versões anteriores ao SP3a não compartilham a porta 1434 corretamente e é possível que não disponibilizem as instâncias do SQL Server para solicitar aplicativos clientes. Embora você possa alterar a ordem de inicialização dos serviços de forma que o serviço Navegador do SQL Server seja iniciado antes do SQL Server 2000 ou do MSDE, recomendamos que você atualize todas as versões anteriores do SQL Server para o service pack mais recente.

Quando uma instância do SQL Server 2000 estiver instalada no computador e não estiver atualizada com pelo menos o service pack 3a, o serviço de escuta do SQL Server 2000 será iniciado se o Navegador do SQL Server não estiver sendo executado. Se o Navegador do SQL Server for iniciado após o serviço de escuta, ele aguardará 5 segundos para que o SQL Server 2000 desista da porta 1434. Se isso não acontecer, o Navegador do SQL Server não será iniciado. Para resolver esse problema com as versões do SQL Server 2000 anteriores ao service pack 3a, interrompa o SQL Server 2000, inicie o Navegador do SQL Server e reinicialize o SQL Server 2000. O serviço de escuta do SQL Server 2000 continua tentando a inicialização na porta 1434. Portanto, a instância do SQL Server 2000 deve ser atualizada assim que possível para o service pack 3a.

O SQL Server 7.0 não tem recursos semelhantes nem conflitos com o Navegador do SQL Server.

Clustering

O Navegador do SQL Server não é um recurso de cluster e não suporta failover de um nó de cluster para outro. Portanto, no caso de um cluster, o Navegador do SQL Server deve ser instalado e ativado para cada nó do cluster. Em clusters, o Navegador do SQL Server escuta em IP_ANY.

ObservaçãoObservação

Quando escutar em IP_ANY e habilitar a escuta em IPs específicos, o usuário deverá configurar a mesma porta do TCP em cada IP, pois o Navegador do SQL Server retorna ao primeiro par de IP/porta que ele encontrar.

Instalando, desinstalando e executando a partir da linha de comandos

Por padrão, o programa Navegador do SQL Server é instalado em C:\Arquivos de Programas\Microsoft SQL Server\100\Shared\sqlbrowser.exe. Se o SQL Server 2000 estiver instalado no computador, mas não estiver atualizado com o Service Pack 3 e se a instância do SQL Server 2000 não estiver sendo atualizada, o SQL Server 2000 deverá ser interrompido durante a instalação do SQL Server. Se o SQL Server 2000 estiver sendo executado, o Navegador do SQL Server não poderá ser iniciado e reivindicará a porta 1434; e a instalação poderá falhar devido a falta de conexão.

O serviço Navegador do SQL Server será desinstalado quando a última instância do SQL Server for removida. As instâncias do SQL Server 2000 retomam o seu comportamento original.

O Navegador do SQL Server pode ser iniciado no prompt de comando para solução de problemas, usando o switch -c:

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

Segurança

Privilégios da conta

O Navegador do SQL Server escuta em uma porta UDP e aceita as solicitações não autenticadas, usando o SQL Server Resolution Protocol (SSRP). O Navegador do SQL Server deve ser executado no contexto de segurança de um usuário com privilégios baixos para minimizar exposição a um ataque mal-intencionado. A conta de logon pode ser alterada com o Gerenciador de Configurações do SQL Server. Os direitos mínimos do usuário para o Navegador do SQL Server são os seguintes:

  • Negar acesso a este computador pela rede

  • Negar logon localmente

  • Negar logon como um trabalho em lotes

  • Negar Logon pelos Serviços de Terminal

  • Fazer logon como um serviço

  • Ler e gravar as chaves do Registro do SQL Server relacionadas à comunicação de rede (portas e pipes)

Conta padrão

O programa de instalação configura o Navegador do SQL Server para usar durante a instalação, a conta selecionada para serviços. Outras contas possíveis incluem o seguinte:

  • Qualquer conta domínio\local

  • A conta serviço local (não disponível em plataformas de W2K)

  • A conta sistema local (não recomendada por ter privilégios desnecessários)

Ocultando o SQL Server

As instâncias ocultas são instâncias do SQL Server que dão suporte apenas a conexões de memória compartilhada. Para o SQL Server, defina o sinalizador do HideInstance para indicar que o Navegador do SQL Server não deve responder com informações sobre esta instância de servidor. O Navegador do SQL Server também dá suporte ao método do SQL Server 2000 para ocultar instâncias habilitadas pela definição da opção HideServer pelo utilitário de rede do servidor. Para obter informações sobre como configurar a opção HideServer, consulte "Como ocultar uma instância do Mecanismo de banco de dados do SQL Server" nos Manuais Online do SQL Server.

Utilizando um firewall

Para comunicar-se com o serviço Navegador do SQL Server em um servidor protegido por firewall, abra a porta 1434 do UDP, além da porta de TCP usada pelo SQL Server (por exemplo, 1433). Para obter informações sobre como trabalhar com um firewall, consulte "Como configurar um firewall para acessar o SQL Server" nos Manuais Online do SQL Server.

Consulte também

Referência