Partilhar via


Os usuários podem não conseguir se conectar remotamente ao SQL Server usando o protocolo TCP/IP

Este artigo ajuda a resolver o problema em que você não consegue se conectar remotamente ao SQL Server usando o protocolo TCP/IP.

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

Sintomas

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

Além disso, as seguintes mensagens são registradas no arquivo de log de erros do SQL Server:

  • Na inicialização do SQL Server:

    Erro: 26023, Gravidade: 16, Estado: 1.
    O provedor TCP do servidor falhou ao escutar em ['any'ipv6<> 1963]. A porta TCP já está sendo usada.
    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 logins com falha:

    SQL Server 2008 e versões posteriores:

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

Causa

O erro ocorre quando você configura um ponto de extremidade TCP para o Service Broker usando a mesma porta que a instância do 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 dos Manuais Online sobre sys.tcp_endpoints (Transact-SQL), essa exibição não contém informações sobre as portas e os protocolos que a instância do SQL Server está configurada para usar no momento. Para encontrar essas informações, consulte SQL Server Configuration Manager.

Solução

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

    Por exemplo, para descartar 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 nomeado 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 aqueles criados para espelhamento de banco de dados, e as mensagens de erro na inicialização do SQL Server serão alteradas de acordo.