Compartir a través de


Es posible que los usuarios no puedan conectarse de forma remota a SQL Server mediante el protocolo TCP/IP.

Este artículo le ayuda a resolver el problema en el que no puede conectarse de forma remota a SQL Server mediante el protocolo TCP/IP.

Versión del producto original: SQL Server
Número de KB original: 2018930

Síntomas

Al usar Microsoft SQL Server, puede ver uno o varios de los síntomas siguientes:

  • Solo los usuarios que tienen permiso CONTROL SERVER (por ejemplo, los miembros del rol fijo de servidor syadmin) pueden conectarse a través de TCP/IP. Los usuarios que no tienen este permiso no se pueden conectar de forma remota a través del protocolo TCP/IP mediante la autenticación de Windows o SQL Server.

    Nota:

    Observará que las conexiones de usuario con privilegios elevados solo aparecen en sys.dm_exec_sessions vista de administración dinámica (DMV) de Transact-SQL, pero no en sys.dm_exec_connections vista (Transact-SQL).

  • Las conexiones locales y remotas que usan el protocolo Canalizaciones con nombre, así como las conexiones locales que usan el protocolo de memoria compartida siguen funcionando bien.

Además, los siguientes mensajes se registran en el archivo errorlog de SQL Server:

  • En el inicio de SQL Server:

    Error: 26023, Gravedad: 16, Estado: 1.
    El proveedor TCP del servidor no pudo escuchar en ['any'ipv6<> 1963]. El puerto Tcp ya está en uso.
    Error: 9692, Gravedad: 16, Estado: 1.
    El transporte del protocolo de Service Broker no puede escuchar en el puerto 1963 porque está en uso por otro proceso.

  • Para los inicios de sesión con errores:

    SQL Server 2008 y versiones posteriores:

    Error: 18456, Gravedad: 14, Estado: 11.
    Error de inicio de sesión del usuario "MyDomain\TestAcc". Motivo: error de infraestructura en la validación de acceso al servidor basada en autorización de token. Compruebe los errores anteriores.

Causa

El error se produce cuando se configura un punto de conexión TCP para Service Broker con el mismo puerto que la instancia de SQL Server está configurada para su uso. Para obtener la lista de puntos de conexión, ejecute la consulta siguiente:

SELECT * FROM sys.tcp_endpoints

Nota:

Como se explica en el tema libros en pantalla sobre sys.tcp_endpoints (Transact-SQL), esta vista no contiene información sobre los puertos y protocolos que la instancia de SQL Server está configurada actualmente para usar. Para encontrar esa información, consulte Administrador de configuración de SQL Server.

Solución

  • Método 1: quite el punto de conexión que está causando el problema mediante el comando DROP ENDPOINT (Transact-SQL).

    Por ejemplo, para quitar un punto de conexión denominado TestEP , puede usar el siguiente comando:

    DROP ENDPOINT TestEP
    
  • Método 2: Modifique el punto de conexión para usar un puerto diferente mediante el comando ALTER ENDPOINT (Transact-SQL).

    Por ejemplo, para modificar un punto de conexión denominado TestEP para usar un puerto diferente, puede usar el siguiente comando:

    ALTER ENDPOINT TestEP as tcp (listener_port=1980)
    

Más información

También pueden producirse problemas similares con otros puntos de conexión TCP, como los creados para la creación de reflejo de la base de datos, y los mensajes de error en el inicio de SQL Server cambiarán en consecuencia.