Erro: Não é possível se conectar a uma instância nomeada em cluster por meio de um firewall

Traduções deste artigo Traduções deste artigo
ID do artigo: 318432 - Exibir os produtos aos quais esse artigo se aplica.
BUG #: 356696 (SHILOH_BUGS)
Expandir tudo | Recolher tudo

Sintomas

Se tentar conectar-se uma instância nomeada em cluster do SQL Server por meio de um firewall e usar apenas o nome da instância (por exemplo, SQL_Virtual_Name\Instance_Name) na seqüência de conexão, a conexão falhar e você pode receber uma das seguintes mensagens de erro:
Mensagem de erro 1
SQL server especificado não encontrado.
Mensagem de erro 2
SQL Server não existe ou acesso negado.
Se você executar um rastreamento de rede no servidor, você pode ver que o servidor, na verdade, recebe a consulta do computador cliente na porta UDP 1434 para o endereço IP de servidor virtual; no entanto, a resposta é enviada com o endereço físico de IP do nó de cluster que está atualmente executando o SQL Server.

Causa

Quando um computador cliente se conecta a um computador que está executando uma instância clusterizada do SQL Server, se a seqüência de caracteres de conexão não especifica o porta TCP de destino, a biblioteca de cliente consulta o servidor na porta UDP 1434 para coletar informações sobre a instância.

Quando o servidor retorna as informações, o quadro 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 do firewall, esse pacote de rede pode ser descartado e o cliente pode não receber qualquer resposta.

Como Contornar

Para contornar esse comportamento você pode:
  • Especifique o número da porta TCP na seqüência de conexão. Por exemplo, se seu servidor virtual do SQL Server é denominado VSERVER1 e ele está escutando no número da porta 2433 TCP/IP, a seqüência de conexão conterá os seguintes atributos.
    Data Source=VSERVER1\instancename,2433;Network Library=dbmssocn
    -or-

  • Crie um alias SQL Server em cada cliente, usando o utilitário de rede para clientes. No alias, especifique a biblioteca de rede para uso (TCP/IP) e o número da porta. Use este alias sua seqüência de conexão e não especificar o atributo de biblioteca de rede em sua seqüência de conexão.

    Você também pode automatizar a criação do alias SQL Server em cada cliente usando um objeto de diretiva de grupo (GPO) no controlador de domínio. Suponha que sua instância virtual do SQL Server é chamada VSERVER1\MyInstance. A instância virtual do SQL Server está escutando em número de porta TCP/IP 2433. O nome do alias SQL Server que você deseja criar é MyAlias. Para automatizar a criação do alias SQL Server, execute estas etapas:
    1. No controlador de domínio, crie um arquivo .reg que contém a entrada do Registro para o alias do SQL Server.

      Por exemplo, crie um arquivo Myreg.reg que contém o informações a seguir.
      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 (OU), execute as seguintes etapas:
      1. Abra o Active Directory Users and Computers , clique com o botão direito do mouse DomainName, aponte para novo e, em seguida, clique em Unidade organizacional .
      2. Na caixa de diálogo Novo objeto ? unidade organizacional , digite um nome para a OU e, em seguida, clique em OK .
    3. Adicione os usuários e computadores aos quais deseja aplicar o GPO à OU. Para fazer isso, arraste os usuários e os computadores para a OU que você criou na etapa 2.
    4. Adicione um GPO para a OU. Este GPO se aplica um script de logon de usuário ou um script de inicialização do computador para importar o arquivo. reg. Para fazer isso, execute as seguintes etapas:
      1. Clique com o botão direito do mouse na OU que você criou na etapa 2 e, em seguida, clique em Propriedades .
      2. Na caixa de diálogo Propriedades , clique na guia Diretiva de grupo .
      3. Na guia Diretiva de grupo , clique em novo e clique em Editar para abrir a janela Editor de GPO .
      4. Se você deseja aplicar esse GPO a usuários ou grupos, siga esta etapa:
        • Expanda User Configuration , expanda Configurações do Windows , clique em scripts (logon/logoff) e, em seguida, clique duas vezes em logon .
        Se você deseja aplicar esse GPO para computadores, siga esta etapa:
        • Expanda Configuração do computador , expanda Configurações do Windows , clique em scripts (inicialização/desligamento) e, em seguida, clique duas vezes em inicialização .
      5. Na caixa de diálogo Propriedades , clique em Mostrar arquivos para abrir a pasta que contém os arquivos de script.

        Observação Um caminho UNC (convenção de nomenclatura universal) aparece na barra de endereços da janela da pasta.
      6. Coloque o arquivo Myreg.reg para a pasta que você abriu na etapa 4e.
      7. Na mesma pasta, crie um arquivo .bat que contém as seguintes informações. Presuma que o nome do arquivo é Mybat.bat.
        Regedit /s <Path>\Myreg.reg
        anotações
        • <Path>representa o caminho UNC da pasta.
        • A opção /s Especifica para importar o arquivo .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 arquivo 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. Verifique se que os usuários e computadores que você adicionou na etapa 3 têm a permissão de leitura e a permissão Aplicar diretiva de grupo para o GPO. Para fazer isso, execute as seguintes etapas:
      1. No Active Directory Users and Computers , clique com o botão direito do mouse na OU que você criou na etapa 2 e, em seguida, clique em Propriedades .
      2. Na caixa de diálogo Propriedades , clique na guia Diretiva de grupo .
      3. Na guia Diretiva de grupo , clique no GPO que você criou na etapa 4 c e, em seguida, clique em Propriedades .
      4. Na caixa de diálogo Propriedades , clique na guia segurança .
      5. Na guia segurança , certifique-se que os usuários e computadores aos quais o GPO se aplica são listados em nomes de grupo ou usuário .
      6. Certifique-se a permissão de leitura e a permissão Aplicar diretiva de grupo são especificados para os usuários e os computadores.

Situação

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

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

Mais Informações

Para obter mais informações, clique nos números abaixo para ler os artigos na Base de dados de Conhecimento da Microsoft:
944390CORRECÇÃO: Mensagem de erro quando você se conecta a uma instância nomeada do SQL Server em um computador cliente que esteja executando o Windows Vista ou Windows Server 2008: "Especificada SQL server não encontrado" ou "Erro Localizar servidor/instância especificado"
936302Lista de problemas conhecidos ao instalar o SQL Server 2005 no Windows Server 2008

Propriedades

ID do artigo: 318432 - Última revisão: terça-feira, 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 Server 2005 Enterprise Edition
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 traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes 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