SQL Server se puede conectar desde el sistema local pero no se puede conectar desde un sistema remoto en la red. El código de error es 40 de Visual Studio y 1326 cuando intento conectarme a SQL Server desde Management Studio.
- El firewall no es el problema
- La conexión TCP/IP está habilitada desde SQL Server
- Hay 2 terminales de PC que pueden conectarse al servidor SQL, pero el tercero no puede y usa las mismas cadenas de conexión, por lo que la cadena de conexión es correcta.
Es el servidor SQL 2000.
Cualquier ayuda será apreciada, gracias
Respuesta1
Intente conectarse desde ODBC (panel de control, administrador, odbc, conexión de nuevo usuario). Intente crear una conexión y pruébela al final del asistente. Si funciona, entonces el problema tiene algo que ver con la cadena de conexión OLEDB, etc.
De lo contrario, podría ser
- un problema de DNS (cuando haga ping, asegúrese de que regrese la dirección IP correcta)
- un problema de permisos del servidor (vea si puede asignar una unidad al servidor SQL e intentar la conexión nuevamente)
- un problema de permiso SQL (verifique el panel de seguridad SQL, asegúrese de que el usuario tenga permiso db_reader (mínimo) para su base de datos predeterminada)
- un alias de SQL incorrecto (en el asistente de ODBC, en la información de conexión, asegúrese de que el nombre del servidor solo aparezca una vez. Si aparece allí varias veces, puede instalar las herramientas de configuración del cliente SQL y eliminar todos los alias de SQL Server adicionales, que podrían redirigir el [nombre del servidor] a una máquina diferente o a un protocolo no válido de forma predeterminada).
Respuesta2
Intente hacer ping al servidor desde el tercer terminal para ver si hay conexión entre ellos.
Respuesta3
Hay bastantes razones para el error 40. Miraaquí para más información.
Respuesta4
Ambos errores 40 y 1326 sugieren un error de canalización con nombre, no un error de TCP. Como menciona que su servidor tiene TCP habilitado, pero no dice nada sobre las canalizaciones con nombre, le sugiero que elimine las canalizaciones con nombre de la ecuación. Si no deshabilita explícitamente las canalizaciones con nombre, los clientes siempre intentarán este protocolo primero y cometerán varios errores, ya que las canalizaciones con nombre requieren conectividad SMB y autenticación de dominio en la capa de intercambio de archivos.antesllegando incluso al SQL Server. Tienes dos vías:
- deshabilite completamente las canalizaciones con nombre en el cliente. VerConfiguración de protocolos de red del cliente.
- fuerce tcp en la cadena de conexión, use la
tcp:servername
sintaxis para la parte del nombre del servidor en la cadena de conexión, consulteCómo utilizar el parámetro de nombre del servidor en una cadena de conexión para especificar la biblioteca de red del cliente.