CORRECÇÃO: Mensagem de erro quando liga a uma instância nomeada do SQL Server num computador cliente que esteja a executar o Windows Vista ou Windows Server 2008: "Especificado do SQL server não encontrado" ou "Erro Localizar instância do servidor especificado"


Importante Este artigo contém informações que lhe mostra como pode ajudar as definições de segurança inferiores ou como desactivar as funcionalidades de segurança num computador. Pode efectuar estas alterações para contornar um problema específico. Antes de efectuar estas alterações, recomendamos que avalie os riscos associados à implementação destas medidas no seu ambiente específico. Se implementar esta solução alternativa, tome medidas adicionais adequadas para ajudar a proteger o computador.

Sintomas


Considere o seguinte cenário. Num computador cliente que esteja a executar o Windows Vista ou Windows Server 2008, ligue a uma instância nomeada do Microsoft SQL Server. Na instância nomeada está localizada num servidor remoto. Neste cenário, a ligação pode falhar.

Nota Este problema ocorre quando se liga a uma das seguintes versões do SQL Server:
  • Microsoft SQL Server 2000
  • Microsoft SQL Server 2005
  • Microsoft SQL Server 2008
Se utilizar o Windows Data Access Components (Windows DAC) 6.0 para ligar à instância com nome, receberá a seguinte mensagem de erro:
[DBNETLIB] SQL server especificado não foi encontrado.
[DBNETLIB] ConnectionOpen (Connect()).
Se utilizar SQL Native Client para ligar à instância com nome, receberá a seguinte mensagem de erro:
[SQL Native Client] Interfaces de rede SQL: Erro Localizar instância do servidor especificado [xFFFFFFFF].
[SQL Native Client] Tempo limite de início de sessão expirou.
Este problema ocorre quando a instância nomeada é uma instância de cluster de activação pós-falha. Além disso, este problema poderá ocorrer se o servidor remoto tem vários endereços IP.

Causa


Quando ligar à instância com nome, a biblioteca de rede do cliente envia um pacote de pedido de protocolo de datagrama de utilizador (UDP) para o endereço IP da instância com nome. Em seguida, o Browser de servidor SQL devolve um pacote de resposta UDP que contém as informações sobre os pontos finais da ligação.

No entanto, num pacote de resposta UDP, o endereço IP de origem não pode ser o endereço IP para o qual foi enviado o pacote de pedido UDP. Se a instância com nome for uma instância do cluster de activação pós-falha, o endereço IP de origem é o endereço IP do computador físico em vez do endereço IP virtual do servidor remoto. Se o servidor remoto tem vários endereços IP, o endereço IP de origem pode ser qualquer um dos endereços IP que são atribuídos para o servidor remoto.

No Windows Vista, A Firewall do Windows não permite para mapeamento de origens latas. Por conseguinte, a Firewall do Windows ignora o pacote de resposta UDP.

Para mais informações sobre o mapeamento de origens latas, consulte a secção de "As ligações UDP" do seguinte Web site da Microsoft:

Resolução


Informações sobre Service Packs para o SQL Server 2008

Importante Aplicar o service pack no servidor remoto que esteja a executar o SQL Server 2008.

Para resolver este problema, obtenha o service pack mais recente do SQL Server 2008. Para mais informações, clique no número de artigo seguinte para visualizar o artigo na Base de Dados de Conhecimento Microsoft
968382 Como obter o service pack mais recente do SQL Server 2008


Nota A correcção apenas resolve o problema quando o SQL server está em execução no Windows Vista ou sistemas do Windows server 2008. Para instalações do SQL Server em versões anteriores, por exemplo, o Windows Server 2003, tem de utilizar um dos métodos descritos na secção Wordaround.

Solução alternativa


Para contornar este problema, utilize um dos seguintes métodos no computador cliente.

Método 1

Na cadeia de ligação, especifique o número da porta TCP ou o nome de pipe nomeado para ligar à instância com nome.

Para mais informações sobre a sintaxe de cadeia de ligação, consulte a secção "Criar uma cadeia de ligação válidos" do seguinte Web site da Microsoft:

Método 2

Aviso Esta medida pode tornar um computador ou de uma rede mais vulnerável a ataques por utilizadores mal intencionados ou software malicioso como vírus. A Microsoft não recomenda esta solução alternativa, mas fornece estas informações para que possa implementá-la à sua própria responsabilidade. Utilize esta solução alternativa na sua conta e risco.

Firewall do Windows com segurança avançada no painel de controlo, crie uma regra de envio para a aplicação que liga ao SQL Server. Para tal, siga estes passos:
  1. No painel de controlo, faça duplo clique em Ferramentas administrativas.
  2. Em Ferramentas administrativas, faça duplo clique em Firewall do Windows com segurança avançada.
  3. No Firewall do Windows com segurança avançada, clique em Regras de saídae, em seguida, clique em Nova regra.
  4. Clique em programae, em seguida, clique em seguinte.
  5. Clique neste caminho do programa, especifique o caminho da aplicação e, em seguida, clique em seguinte.
  6. Clique em Permitir a ligaçãoe, em seguida, clique em seguinte.
  7. Conclua os passos para o novo Assistente de regras de saída.

Método 3

Aviso Esta medida pode tornar um computador ou de uma rede mais vulnerável a ataques por utilizadores mal intencionados ou software malicioso como vírus. A Microsoft não recomenda esta solução alternativa, mas fornece estas informações para que possa implementá-la à sua própria responsabilidade. Utilize esta solução alternativa na sua conta e risco.

Firewall do Windows com segurança avançada no painel de controlo, crie uma regra de entrada que permite o tráfego de todos os endereços IP possíveis do servidor remoto ou de todos os endereços IP possíveis que estão configurados para a instância de cluster de activação pós-falha. Para tal, siga estes passos:
  1. No painel de controlo, faça duplo clique em Ferramentas administrativas.
  2. Em Ferramentas administrativas, faça duplo clique em Firewall do Windows com segurança avançada.
  3. No Firewall do Windows com segurança avançada, clique em Regras de entradae, em seguida, clique em Nova regra.
  4. Clique em Personalizare, em seguida, clique em seguinte.
  5. Clique em todos os programase, em seguida, clique em seguinte.
  6. Na lista tipo de protocolo , clique em qualquere, em seguida, clique em seguinte.
  7. Em que endereços IP remotos correspondem a esta regra, clique nestes endereços IPe, em seguida, clique em Adicionar.
  8. Na caixa de diálogo Endereço IP , escreva um dos endereços IP com este endereço IP ou sub-redee, em seguida, clique em OK.
  9. Para adicionar outros endereços IP, repita os passos 7 a 8 e, em seguida, clique em seguinte.
  10. Clique em Permitir a ligaçãoe, em seguida, clique em seguinte.
  11. Conclua os passos para o novo Assistente de regras de entrada.

Estado


A Microsoft confirmou que este é um problema nos produtos da Microsoft listados na secção "Aplica-se a". Este problema foi primeiro corrigido no SQL Server 2008 Service Pack 1.

Mais informações


Para mais informações sobre A Firewall do Windows com segurança avançada, visite o seguinte Web site da Microsoft: