Partilhar via


Os usuários podem não ser capazes de se conectar remotamente a SQL Server usando o protocolo TCP/IP

Este artigo ajuda você a resolve o problema em que não é possível se conectar remotamente a SQL Server usando o protocolo TCP/IP.

Versão original do produto: SQL Server
Número de KB original: 2018930

Sintomas

Ao usar o Microsoft SQL Server, você pode ver um ou mais dos seguintes sintomas:

  • Somente os usuários que têm permissão CONTROL SERVER (por exemplo, membros da função de servidor fixa syadmin ) podem se conectar por meio de TCP/IP. Os usuários que não têm essa permissão não podem se conectar remotamente por meio do protocolo TCP/IP usando o Windows ou SQL Server autenticação.

    Observação

    Você observará que as conexões de usuário elevadas aparecem apenas no Modo de Exibição de Gerenciamento Dinâmico (Transact-SQL) de sys.dm_exec_sessions (Transact-SQL ), mas não na exibição sys.dm_exec_connections (Transact-SQL ).

  • As conexões locais e remotas usando o protocolo Pipes Nomeados, bem como conexões locais usando o protocolo de memória compartilhada continuam funcionando bem.

Além disso, as seguintes mensagens são registradas no arquivo SQL Server Errorlog:

  • No SQL Server inicialização:

    Erro: 26023, Gravidade: 16, Estado: 1.
    Falha ao escutar o provedor de TCP do servidor ['any'ipv6<> 1963]. A porta Tcp já está em uso.
    Erro: 9692, Gravidade: 16, Estado: 1.
    O transporte de protocolo do Service Broker não pode escutar na porta 1963 porque está em uso por outro processo.

  • Para logons com falha:

    SQL Server 2008 e versões posteriores:

    Erro: 18456, Gravidade: 14, Estado: 11.
    Falha no logon do usuário 'MyDomain\TestAcc'. Motivo: a validação de acesso de servidor baseada em token falhou com um erro de infraestrutura. Verifique se há erros anteriores.

Motivo

O erro ocorre quando você configura um ponto de extremidade TCP para Service Broker usando a mesma porta que a instância SQL Server está configurada para usar. Você pode obter a lista de pontos de extremidade executando a seguinte consulta:

SELECT * FROM sys.tcp_endpoints

Observação

Conforme explicado no tópico Books Online sobre sys.tcp_endpoints (Transact-SQL), esse modo de exibição não contém informações sobre as portas e protocolos que SQL Server instância está configurada para usar no momento. Para encontrar essas informações, consulte SQL Server Configuration Manager.

Resolução

  • Método 1: solte o ponto de extremidade que está causando o problema usando o comando DROP ENDPOINT (Transact-SQL).

    Por exemplo, para soltar um ponto de extremidade chamado TestEP , você pode usar o seguinte comando:

    DROP ENDPOINT TestEP
    
  • Método 2: altere o ponto de extremidade para usar uma porta diferente usando o comando ALTER ENDPOINT (Transact-SQL).

    Por exemplo, para alterar um ponto de extremidade chamado TestEP para usar uma porta diferente, você pode usar o seguinte comando:

    ALTER ENDPOINT TestEP as tcp (listener_port=1980)
    

Mais informações

Problemas semelhantes também podem ocorrer com outros pontos de extremidade TCP, como os criados para espelhamento de banco de dados, e as mensagens de erro em SQL Server inicialização serão alteradas de acordo.