Serviço SQL Server Browser (Mecanismo de Banco de Dados e SSAS)
O programa SQL ServerBrowser é 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. SQL Server O Browser 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. SQL Server O Browser é instalado com o SQL Server.
SQL Server O Browser 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.
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 Serviços de análiseé instalada.
Segundo plano
Antes de SQL Server 2000, apenas uma instância de 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 de SQL Server pode usar uma porta, portanto, quando SQL Server 2000 introduziu o suporte para várias instâncias de SQL Server, SQL Server Protocolo de Resolução (SSRP) 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 resolve limitações do sistema SSRP, o SQL Server 2005 introduziu o serviço SQL Server Browser como uma substituição para 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 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 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. 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. O navegador SQL Server não retorna informações de porta para a instância padrão.
Para obter informações sobre como iniciar e interromper o serviço SQL Server Browser, veja Iniciar, interromper, pausar, retomar ou reiniciar o Mecanismo de Banco de Dados, o SQL Server Agent ou o serviço SQL Server Browser.
Utilizando o SQL Server Browser
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ê 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.
Clustering
SQL Server O 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 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çã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 SQL Server Browser é instalado em C:\Arquivos de Programas (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.
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
SQL Server O Browser escuta em uma porta UDP e aceita as solicitações não autenticadas usando o protocolo SSRP ( SQL Server Resolution Protocol). SQL Server O 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 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:
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 de HideInstance
para indicar que o Navegador do SQL Server não deve responder com informações sobre essa instância de servidor.
Usando um firewall
Para comunicar-se com o serviço Navegador do SQL Server em um servidor por trás de um firewall, abra a porta UDP 1434, além da porta TCP usada pelo SQL Server (por exemplo, 1433). Para obter informações sobre como trabalhar com um firewall, veja "Como configurar um Firewall para SQL Server acesso" em Manuais Online SQL Server.