SQL Server Browser Service
- 03/14/2017
- 6 minutos para ler
- >
- m
- M
- M
- J
- c
-
+3
Candidata-se a: ServidorSQL (todas as versões suportadas) – apenas Windows Azure SQL Managed Instance
O programa SQL ServerBrowser é executado como um serviço do Windows. O SQL Server Browser ouve 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:
-
Ligando uma lista dos servidores disponíveis
-
Conectando à instância correta do servidor
-
Conectando aos endpoints de conexão dedicada de administrador (DAC)
Para cada instância do Database Engine e SSAS, o serviço SQL Server Browser (sqlbrowser) fornece o nome da instância e o número da versão. O SQL Server Browser é instalado com SQL Server.
SQL Server Browser pode ser configurado durante a configuração ou usando o SQL Server Configuration Manager. Por padrão, o serviço SQL Server Browser inicia automaticamente:
-
Ao atualizar uma instalação.
-
Ao instalar em um cluster.
-
Ao instalar uma instância nomeada do Database Engine incluindo todas as instâncias do SQL Server Express.
-
Ao instalar uma instância nomeada do Analysis Services.
Background
Prior to SQL Server 2000 (8.x), apenas uma instância do SQL Server poderia ser instalada em um computador. O SQL Server ouviu as solicitações de entrada na porta 1433, atribuída ao SQL Server pela Internet Assigned Numbers Authority (IANA) oficial. Apenas uma instância do SQL Server pode usar uma porta, então quando o SQL Server 2000 (8.x) introduziu suporte para múltiplas instâncias do SQL Server, o SQL Server Resolution Protocol (SSRP) foi desenvolvido para ouvir na porta UDP 1434. Este serviço de ouvinte respondeu a pedidos de clientes com os nomes das instâncias instaladas, e as portas ou pipes nomeados utilizados pela instância. Para resolver limitações do sistema SSRP, o SQL Server 2005 (9.x) introduziu o serviço SQL Server Browser em substituição ao SSRP.
Como funciona o SQL Server Browser
Quando uma instância do SQL Server é iniciada, se o protocolo TCP/IP estiver habilitado para o SQL Server, é atribuída uma porta TCP/IP ao servidor. Se o protocolo pipe nomeado estiver habilitado, o SQL Server escuta em um pipe nomeado específico. Esta porta, ou “pipe”, é usada por aquela instância específica para trocar dados com aplicações clientes. Durante a instalação, a porta TCP 1433 e pipe \sql\query
são atribuídas à instância padrão, mas estas podem ser alteradas posteriormente pelo administrador do servidor usando o SQL Server Configuration Manager. Como apenas uma instância do SQL Server pode usar uma porta ou pipe, diferentes números de portas e nomes de pipe são atribuídos para instâncias nomeadas, incluindo o SQL Server Express. Por padrão, quando ativado, tanto as instâncias nomeadas quanto o SQL Server Express são configurados para usar portas dinâmicas, ou seja, uma porta disponível é atribuída quando o SQL Server inicia. Se você quiser, uma porta específica pode ser atribuída a uma instância do SQL Server. Ao conectar, os clientes podem especificar uma porta específica; mas se a porta for atribuída dinamicamente, o número da porta pode mudar a qualquer momento que o SQL Server for reiniciado, então o número correto da porta é desconhecido para o cliente.
Inicialização do componente, o SQL Server Browser inicia e reivindica 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 pipes nomeados que eles usam. Quando um servidor tem duas ou mais placas de rede, o SQL Server Browser retorna a primeira porta habilitada que encontra para o SQL Server. O SQL Server Browser suporta ipv6 e ipv4.
Quando os clientes do SQL Server solicitam recursos do SQL Server, a biblioteca de rede cliente envia uma mensagem UDP para o servidor usando a porta 1434. O SQL Server Browser responde com a porta TCP/IP ou pipe nomeado da instância requisitada. A biblioteca de rede na aplicação cliente então completa a conexão enviando um pedido ao servidor usando a porta ou pipe nomeado da instância desejada.
Para informações sobre como iniciar e parar o serviço do SQL Server Browser, veja SQL Server Books Online.
Using SQL Server Browser
Se o serviço do SQL Server Browser não estiver rodando, você ainda será capaz de se conectar ao SQL Server se você fornecer o número correto da porta ou pipe nomeado. Por exemplo, você pode se conectar à instância padrão do SQL Server com TCP/IP se ele estiver rodando na porta 1433.
No entanto, se o serviço de Navegador do SQL Server não estiver rodando, as seguintes conexões não funcionam:
-
Ainda componente que tenta se conectar a uma instância nomeada sem especificar completamente todos os parâmetros (como a porta TCP/IP ou pipe nomeado).
-
Ainda componente que gera ou passa informações do servidor\instância que poderia mais tarde ser usada por outros componentes para reconectar.
-
Conectar-se a uma instância nomeada sem fornecer o número da porta ou pipe.
-
DAC a uma instância nomeada ou a instância padrão se não estiver usando a porta TCP/IP 1433.
-
O serviço de redirecionamento OLAP.
-
Enumerar servidores no SQL Server Management Studio, Enterprise Manager, ou Query Analyzer.
Se você estiver usando o SQL Server em um cenário cliente-servidor (por exemplo, quando sua aplicação está acessando o SQL Server através de uma rede), se você parar ou desabilitar o serviço SQL Server Browser, você deve atribuir um número de porta específico para cada instância e escrever o código da sua aplicação cliente para usar sempre esse número de porta. Esta abordagem tem os seguintes problemas:
-
Você deve atualizar e manter o código da aplicação cliente para garantir que ela esteja conectada à porta apropriada.
-
A porta escolhida para cada instância pode ser usada por outro serviço ou aplicação no servidor, fazendo com que a instância do SQL Server não esteja disponível.
Clustering
SQL Server Browser não é um recurso em cluster e não suporta failover de um nó de cluster para o outro. Portanto, no caso de um cluster, o SQL Server Browser deve ser instalado e ligado para cada nó do cluster. Em clusters, o SQL Server Browser ouve em IP_ANY.
Nota
Quando se escuta em IP_ANY, quando se ativa a escuta em IPs específicos, o usuário deve configurar a mesma porta TCP em cada IP, porque o SQL Server Browser retorna o primeiro par IP/porta que encontrar.
Instalando, Desinstalando e Executando a partir da Linha de Comando
O serviço SQL Server Browser é desinstalado quando a última instância do SQL Server é removida.
Navegador do SQL Server pode ser iniciado a partir do prompt de comando para resolução de problemas, usando a chave -c:
<drive>\<path>\sqlbrowser.exe -c
Segurança
Privégios de Conta
Navegador do SQL Server escuta em uma porta UDP e aceita pedidos não autenticados usando o SQL Server Resolution Protocol (SSRP). O SQL Server Browser deve ser executado no contexto de segurança de um usuário de baixo privilégio para minimizar a exposição a um ataque malicioso. A conta de login pode ser alterada usando o SQL Server Configuration Manager. Os direitos mínimos de utilizador para o SQL Server Browser são os seguintes:
-
Deny access to this computer from the network
-
Deny logon localmente
-
Deny Log on as a batch job
-
Deny Log On Through Terminal Services
-
Log on as a service
-
Ler e escrever as chaves de registro do SQL Server relacionadas à comunicação em rede (portas e pipes)
Conta Padrão
Configuração configura o SQL Server Browser para usar a conta selecionada para os serviços durante a configuração. Outras contas possíveis incluem o seguinte:
-
Any domain\local account
-
A conta de serviço local
-
A conta do sistema local (não recomendado por ter privilégios desnecessários)
Esconder SQL Server
Explicações ocultas são instâncias do SQL Server que suportam apenas conexões de memória compartilhada. Para SQL Server, defina a bandeira HideInstance
para indicar que o SQL Server Browser não deve responder com informações sobre esta instância do servidor.
Utilizar um Firewall
Comunicar-se com o serviço SQL Server Browser num servidor atrás de um firewall, abra a porta UDP 1434, além da porta TCP utilizada pelo SQL Server (por exemplo, 1433). Para informações sobre como trabalhar com um firewall, veja “Como fazer”: Configure a Firewall for SQL Server Access” em SQL Server Books Online.
Veja Também
Protocolos de Rede e Bibliotecas de Rede