Serviço SQL Server Browser

Aplica-se a: SQL Server (todas as versões com suporte) – Somente Windows

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

  • Navegar em uma lista de servidores disponíveis.
  • Conectar-se à instância de servidor correta.
  • Conectar-se aos pontos de extremidade da DAC (conexão de administrador dedicada).

Para cada instância do Mecanismo de Banco de Dados e do SSAS (SQL Server Analysis Services), o serviço do SQL Server Browser (sqlbrowser) fornece o nome da instância e o número de versão. O SQL Server Browser é instalado com o SQL Server.

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

  • Quando uma instalação é atualizada.
  • Quando um cluster é instalado.
  • Ao instalar uma instância nomeada do Mecanismo de Banco de Dados, incluindo todas as instâncias do SQL Server Express.
  • Quando uma instância nomeada do SSAS.

Tela de fundo

Antes do SQL Server 2000 (8.x), somente uma instância do SQL Server poderia ser instalada em um computador. SQL Server ouviu as solicitações de entrada na porta 1433, atribuídas 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 (8.x) passou a dar suporte a várias instâncias do SQL Server, o 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 usados pela instância.

Para resolver as limitações de sistema do SSRP, o SQL Server 2005 (9.x) criou o serviço SQL Server Browser como um substituto para o SSRP.

Como funciona o SQL Server Browser

Quando uma instância do SQL Server for iniciada, se o protocolo TCP/IP estiver habilitado para o SQL Server, será atribuída uma porta TCP/IP ao servidor. Se o protocolo de pipes nomeados estiver habilitado, o SQL Server escutará 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 do servidor usando o SQL Server Configuration Manager.

Como apenas uma instância do SQL Server pode 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. SQL Server O Browser lê o Registro, identifica todas as instâncias do SQL Server 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. SQL Server O Browser dá suporte ao IPv6 e 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. SQL Server O Browser 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.

Saiba como iniciar e parar o serviço SQL Server Browser no artigo Iniciar, parar, pausar, retomar e reiniciar os serviços do SQL Server.

Utilizando o SQL Server Browser

Se o serviço SQL Server Browser não estiver sendo executado, você ainda poderá se conectar ao SQL Server desde que 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 SQL Server Browser 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 usar a porta 1433 do TCP/IP.
  • O serviço redirecionador do OLAP (Online Analytical Processing).
  • Enumerar servidores no SQL Server Management Studio ou no Azure Data Studio.

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 SQL Server Browser, você precisará atribuir um número da porta específico a cada instância e gravar seu código de aplicativo cliente para sempre usar aquele número da porta. Esta abordagem tem os seguintes problemas:

  • Você precisa atualizar e manter o código de aplicativo cliente para garantir que ele se conectará à porta correta.
  • A porta que você escolhe para cada instância pode ser usada por outro serviço ou aplicativo no servidor, tornando a instância do SQL Server indisponível.

Clustering

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

Observação

Quando estiver escutando no IP_ANY e habilitar a escuta de IPs específicos, o usuário precisará configurar a mesma porta TCP em cada IP, pois o SQL Server Browser retorna ao primeiro par de IP/porta que ele encontrar.

Como instalar, desinstalar e executar na linha de comandos

Por padrão, o programa SQL Server Browser é instalado em C:\Program Files (x86)\Microsoft SQL Server\90\Shared\sqlbrowser.exe.

O serviço SQL Server Browser será desinstalado quando a última instância do SQL Server for removida.

SQL Server O Browser pode ser iniciado no prompt de comando para a solução de problemas por meio da opção -c :

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

Segurança

Privilégios da conta

O SQL Server Browser escuta em uma porta UDP e aceita as solicitações não autenticadas usando o protocolo SSRP (SQL Server Resolution Protocol). O SQL Server Browser 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 SQL Server Configuration Manager.

Os direitos mínimos de usuário para o SQL Server Browser são:

  • 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

A instalação configura o SQL Server Browser para usar a conta selecionada para serviços durante a instalação. Outras contas possíveis incluem:

  • Qualquer conta domínio\localização.
  • A conta de serviço local.
  • 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 HideInstance para indicar que o SQL Server Browser não deve responder com informações sobre essa instância de servidor.

Como usar um firewall

Para comunicar-se com o serviço SQL Server Browser em um servidor protegido por um firewall, abra a porta UDP 1434, além da porta TCP usada pelo SQL Server (por exemplo, 1433). Para obter mais informações sobre como trabalhar como um firewall, confira Configurar o Firewall do Windows para permitir acesso ao SQL Server.

Próximas etapas

Saiba mais sobre conceitos relacionados nos seguintes artigos: