Serviço SQL Server Browser

Aplica-se a: SQL Server (somente para 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 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 usando o SQL Server Configuration Manager. Por padrão, o serviço Navegador do SQL Server é 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), apenas uma instância do SQL Server podia 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 (User Datagram Protocol) 1434. Esse serviço de ouvinte responde às solicitações do cliente com os nomes 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 e o protocolo TCP/IP estiver habilitado para o SQL Server, uma porta TCP/IP será atribuída ao servidor. O SQL Server escutará em um pipe nomeado específico se o protocolo de pipes nomeados estiver habilitado. Essa porta ou o pipe nomeado será utilizado por aquela instância específica para trocar dados com os aplicativos clientes. A porta TCP/IP 1433 e o pipe \sql\query são atribuídos à instância padrão durante a instalação. O administrador do servidor pode alterar a porta ou o pipe nomeado 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. Quando habilitados, as instâncias nomeadas e o SQL Server Express são configurados para usar portas dinâmicas por padrão. Ou seja, uma porta disponível é atribuída quando o SQL Server é iniciado.

Se você desejar, pode-se atribuir uma porta específica a uma instância do SQL Server. Os clientes podem especificar a porta ao se conectarem ao SQL Server. No entanto, se a porta for atribuída dinamicamente, o número da porta poderá ser alterado sempre que o SQL Server for reiniciado, de modo que o número correto da porta será desconhecido pelo cliente.

Na inicialização, o SQL Server Browser é iniciado e solicita a porta UDP 1434. O SQL Server Browser lê o registro, identifica todas as instâncias do SQL Server no computador e anota as portas e os pipes nomeados que elas usam. 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 SQL Server Browser oferece suporte para 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.

Usar o SQL Server Browser

Se o serviço SQL Server Browser não estiver em execução, você ainda poderá se conectar ao SQL Server se fornecer 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.

No entanto, se o serviço SQL Server Browser não estiver em execução, as conexões a seguir 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 outros componentes possam usar posteriormente 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 de redirecionador de OLAP (Processamento Analítico Online).
  • Enumerar servidores no SQL Server Management Studio ou no Azure Data Studio.

Suponha que você esteja usando o SQL Server em um cenário de cliente/servidor (por exemplo, quando seu aplicativo está acessando o SQL Server em uma rede). Se você interromper ou desabilitar o serviço SQL Server Browser, deverá atribuir um número de porta específico a cada instância e escrever o código do aplicativo cliente para usar esse número de 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 utilizada por outro serviço ou aplicativo no servidor, tornando a instância do SQL Server indisponível.

Clusters e o SQL Server Browser

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

Observação

Ao escutar em IP_ANY, quando você habilita a escuta em IPs específicos, o usuário deve configurar a mesma porta TCP em cada IP, pois o SQL Server Browser retorna o primeiro par de IP/porta que encontrar.

Instalar, desinstalar e executar a partir da linha de comando

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

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

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

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

Segurança

O serviço SQL Server Browser é fundamental para facilitar a comunicação de rede com as instâncias do SQL Server.

As medidas de segurança do serviço SQL Server Browser incluem:

  • Configuração de firewalls para permitir seu tráfego.
  • Restringir o acesso a endereços IP confiáveis.
  • Aplicação regular de atualizações para corrigir vulnerabilidades.
  • Além disso, é essencial implementar políticas sólidas de autenticação e autorização para impedir o acesso não autorizado e manter a integridade do seu ambiente do SQL Server.

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 login pode ser alterada usando 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 o login localmente.
  • Negar o login como um trabalho em lotes.
  • Negar logon pelos serviços de terminal.
  • Entrar como 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 do sistema local (não recomendada, pois tem privilégios desnecessários).

Ocultar 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.

Usar um firewall

Para se comunicar com o serviço do Navegador do SQL Server em um servidor atrás de um firewall, abra a porta UDP 1434 e a porta TCP/IP 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.