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, es posible que vea 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 pueden conectarse de forma remota a través del protocolo TCP/IP mediante Windows o SQL Server autenticación.

    Nota:

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

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

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

  • En SQL Server inicio:

    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 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 en la validación del acceso al servidor basado en tokens con un error de infraestructura. Compruebe si hay 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 usarse. 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 de los Libros en pantalla sobre sys.tcp_endpoints (Transact-SQL), esta vista no contiene información sobre los puertos y protocolos que SQL Server instancia está configurada actualmente para su uso. 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 causa 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 SQL Server inicio cambiarán en consecuencia.