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:
Somente os usuários que têm permissão CONTROL SERVER (por exemplo, membros da função de servidor fixa syadmin ) podem se conectar via 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 a autenticação do Windows ou do SQL Server.
Observação
Você observará que as conexões de usuário com privilégios elevados só aparecem na DMV (Exibição de Gerenciamento Dinâmico) 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 Named Pipes, bem como as conexões locais usando o protocolo de memória compartilhada, continuam funcionando bem.
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.