Erro: Não é possível ligar a uma instância nomeada cluster através de um firewall

Traduções de Artigos Traduções de Artigos
Artigo: 318432 - Ver produtos para os quais este artigo se aplica.
N.º DE BUGS: 356696 (SHILOH_BUGS)
Expandir tudo | Reduzir tudo

Sintomas

Se tentar ligar uma cluster instância nomeada do SQL Server através de um firewall e utilizar apenas o nome da instância (por exemplo, SQL_Virtual_Name\Instance_Name) na cadeia de ligação, a ligação falhar e poderá receber uma das seguintes mensagens de erro:
Mensagem de erro 1
Não foi encontrado um servidor SQL especificado.
Mensagem de erro 2
SQL Server não existe ou o acesso negado.
Se executar um rastreio de rede no servidor, pode ver que o servidor, na realidade, recebe a consulta do computador cliente na porta 1434 de UDP para o endereço IP do servidor virtual; no entanto, a resposta é enviada com o endereço IP físico do nó do cluster está em execução do SQL Server.

Causa

Quando um computador cliente se liga a um computador executando uma instância em cluster do SQL Server, se a cadeia de ligação não especificar o destino de porta TCP, a biblioteca de cliente consulta o servidor na porta 1434 de UDP para recolher informações sobre a instância.

Quando o servidor devolve as informações, o pacote de rede contém o endereço IP do nó físico em vez do endereço IP do servidor virtual. Dependendo da configuração de firewall, este pacote de rede pode ser largado e o cliente poderá não receber qualquer resposta.

Como contornar

Para contornar este comportamento pode:
  • Especificar o número de porta TCP na cadeia de ligação. Por exemplo, se o servidor de SQL Server virtual denominado VSERVER1 e está a escutar número da porta TCP/IP 2433, a cadeia de ligação irá conter os seguintes atributos.
    Data Source=VSERVER1\instancename,2433;Network Library=dbmssocn
    -or-

  • Crie um alias de SQL Server em cada cliente, utilizando o utilitário de rede do cliente. O alias, especificar a biblioteca de rede a utilizar (TCP/IP) e o número da porta. Utilize este alias na cadeia da ligação e não especificar o atributo de biblioteca de rede na cadeia da ligação.

    Também pode automatizar a criação do alias SQL Server em cada cliente utilizando um objecto de política de grupo (GPO, Group Policy Object) no controlador de domínio. Suponha que a instância do SQL Server virtual denominada VSERVER1\MyInstance. A instância do SQL Server virtual está à escuta no número de porta TCP/IP 2433. O nome do alias SQL Server que pretende criar é MyAlias. Para automatizar a criação do alias SQL Server, siga estes passos:
    1. No controlador de domínio, crie um ficheiro .reg que contém a entrada de registo para o alias do SQL Server.

      Por exemplo, crie um ficheiro Myreg.reg que contém as informações seguintes.
      Windows Registry Editor Version 5.00
      
      [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\Client\ConnectTo]
      "DSQUERY"="DBNETLIB"
      "MyAlias"="DBMSSOCN,VSERVER1\MyInstance,2433"
    2. Para criar uma unidade organizacional (UO), siga estes passos:
      1. Abra computadores e utilizadores do Active Directory , clique com o botão direito do rato DomainName, aponte para Novo e, em seguida, clique em Unidade organizacional .
      2. Na caixa de diálogo Novo objecto - unidade organizacional , introduza um nome para a OU e, em seguida, clique em OK .
    3. Adicione os utilizadores e computadores ao qual pretende aplicar o GPO para OU de. Para efectuar este procedimento, arraste os utilizadores e computadores para a UO que criou no passo 2.
    4. Adicione um GPO na UO. Este GPO aplica-se um script de início de sessão do utilizador ou um script de arranque do computador para importar o ficheiro. reg. Para o fazer, siga estes passos:
      1. Clique com o botão direito do rato na UO que criou no passo 2 e, em seguida, clique em Propriedades .
      2. Na caixa de diálogo Propriedades , clique no separador Política de grupo .
      3. No separador Política de grupo , clique em Novo e, em seguida, clique em Editar para abrir a janela Editor de objecto de política de grupo .
      4. Se pretender aplicar este GPO a utilizadores ou grupos, siga este passo:
        • Expanda Configuração do utilizador , expanda Definições do Windows , clique em scripts (início/fim de sessão) e, em seguida, faça duplo clique em início de sessão .
        Se desejar aplicar este GPO para computadores, siga este passo:
        • Expanda Configuração do computador , expanda Definições do Windows , clique em scripts (arranque/encerramento) e, em seguida, faça duplo clique em arranque .
      5. Na caixa de diálogo Propriedades , clique em Mostrar ficheiros para abrir a pasta que contém os ficheiros de script.

        Nota Aparece um caminho UNC (convenção de nomenclatura universal) na barra de endereço da janela de pasta.
      6. Coloque o ficheiro Myreg.reg para a pasta que abriu no passo 4e.
      7. Na mesma pasta, crie um ficheiro .bat que contém as seguintes informações. Suponha que o nome do ficheiro é Mybat.bat.
        Regedit /s <Path>\Myreg.reg
        notas
        • <Path>representa o caminho UNC da pasta.
        • O parâmetro /s Especifica para importar o ficheiro .reg no modo silencioso.
      8. Na caixa de diálogo Propriedades , clique em Adicionar .
      9. Na caixa de diálogo Adicionar um script , clique em Procurar .
      10. Na caixa de diálogo Procurar , localize o ficheiro Mybat.bat e, em seguida, clique em Abrir .
      11. Na caixa de diálogo Adicionar um script , clique em OK .
      12. Na caixa de diálogo Propriedades , clique em OK .
    5. Certifique-se que os utilizadores e computadores que adicionou no passo 3 tem a permissão de leitura e a permissão de Aplicar política de grupo para o GPO. para o fazer, siga estes passos:
      1. Em computadores e utilizadores do Active Directory , clique com o botão direito do rato na UO que criou no passo 2 e, em seguida, clique em Propriedades .
      2. Na caixa de diálogo Propriedades , clique no separador Política de grupo .
      3. No separador Política de grupo , clique no GPO que criou no passo 4 c e, em seguida, clique em Propriedades .
      4. Na caixa de diálogo Propriedades , clique no separador segurança .
      5. No separador segurança , certifique-se que os utilizadores e computadores ao qual se aplica o GPO, Group Policy Object estão listados em nomes de grupo ou utilizador .
      6. Certifique-se de que a permissão de leitura e a permissão de Aplicar política de grupo forem especificados para os utilizadores e computadores.

Ponto Da Situação

A Microsoft confirmou que este é um problema nos produtos da Microsoft listados na secção "Aplica-se a".

Este problema é corrigido nos seguintes casos:
  • Microsoft SQL Server 2008 instalado no Windows Server 2008
  • Microsoft SQL Server 2005 que co-exists juntamente com o Microsoft SQL Server 2008 no Windows Server 2008
Este problema ocorre no Microsoft SQL Server 2008 no Windows Server 2003.

Mais Informação

Para obter mais informações, clique números de artigo que se seguem para visualizar os artigos na base de dados de conhecimento da Microsoft:
944390CORRECÇÃO: Mensagem de erro quando liga a uma instância nomeada do SQL Server num computador cliente com o Windows Vista ou o Windows Server 2008: "Especificado pelo SQL server não encontrada" ou "Erro de localização/instância de servidor especificado"
936302Lista de problemas conhecidos ao instalar o SQL Server 2005 no Windows Server 2008

Propriedades

Artigo: 318432 - Última revisão: 5 de maio de 2009 - Revisão: 3.0
A informação contida neste artigo aplica-se a:
  • Microsoft SQL Server 2000 Enterprise Edition
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL 2005 Server Enterprise
Palavras-chave: 
kbmt kbbug kbpending KB318432 KbMtpt
Tradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine translation ou MT), não tendo sido portanto revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 318432

Submeter comentários

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com