Nota: Obviamente he cambiado los nombres de los servidores y las direcciones IP a ficticios.
Esto es lo que está pasando. Tengo un servidor, al que llamo MYSERVER
, que ejecuta Microsoft SQL Server Express 2005. Justo en este servidor, tengo una conexión ODBC configurada apuntando a sí misma, y eso ya funciona perfectamente. Me conecto usando la autenticación de SQL Server (no la autenticación de Windows), y está configurado de esta manera:
Como dije, ese funciona. Pero a continuación, tengo otra computadora que está en un dominio totalmente diferente / no en la intranet, que necesita acceder a este mismo SQL Server alojado en MYSERVER. Debido a que está en un dominio diferente, no reconoce el nombre "MYSERVER"; Tengo que señalarlo a la dirección IP de MYSERVER, que diremos es 123.456.789.012. Pero la conexión ODBC no parece funcionar allí. Intenté configurarlo así:
Esto no funciona Cuando introduzco el nombre de usuario y la contraseña y presiono Siguiente, se detiene durante unos 10 a 20 segundos, y finalmente regresa con el siguiente error:
Connection failed:
SQLState: '01000'
SQL Server Error: 1326
[Microsoft][ODBC SQL Server Driver][DBNETLIB]ConnectionOpen (Connect()).
Connection failed:
SQLState: '08001'
SQL Server Error: 17
[Microsoft][ODBC SQL Server Driver][DBNETLIB]SQL Server does not exist or access denied.
Si intento lo mismo, pero cambio el "servidor" de 123.456.789.012\SQLEXPRESS
simplemente viejo 123.456.789.012
, obtengo un error diferente:
Connection failed:
SQLState: '01000'
SQL Server Error: 14
[Microsoft][ODBC SQL Server Driver][DBNETLIB]ConnectionOpen (Invalid Instance()).
Connection failed:
SQLState: '08001'
SQL Server Error: 14
[Microsoft][ODBC SQL Server Driver][DBNETLIB]Invalid connection.
Ahora sé lo que estás pensando. Quizás estés pensando, "duh, probablemente no abriste el firewall para el puerto 1433, tonto". Excepto que lo hice, y verifiqué esto, ya que puedo ejecutar con éxito :
telnet 123.456.789.012 1433
... desde la línea de comandos todo lo que quiero. Así que no estoy seguro de qué hacer. Sé que el SQL Server existe, funciona, y una conexión ODBC se puede configurar correctamente; Simplemente no estoy seguro de qué es lo que tengo mal en mi configuración de conexión que arroja estos errores. Según el último error que enumeré, parece que se puede conectar al servidor, pero simplemente no puede encontrar la instancia (ya que no especifiqué uno esa vez). Entonces, ¿eso significa que solo necesito usar una sintaxis diferente para especificar la IP junto con un nombre de instancia? ¿Qué debo hacer? Gracias por adelantado.
fuente
¿Ha habilitado el servicio del navegador SQL Server según Cómo configurar SQL Server 2005 para permitir conexiones remotas ?
fuente
Este hilo solucionó el mismo mensaje de error para mí cuando uso Access para conectarse a un servidor MSSQL 2008. MSSQL 2005 y versiones anteriores funcionaron bien simplemente usando el nombre de la computadora en la cadena de conexión, pero tuve que cambiar a la cadena de conexión en Access al formulario completo cuando la instancia se actualizó a 2008:
servername\instancename,portnumber
fuente
Tuve este mismo problema y logré resolverlo cambiando el controlador SQL al controlador SQL Native Client también. Esto fue extraño ya que en mi caso esto había estado funcionando bien durante años y luego simplemente dejó de funcionar. Sospecho que esto es algo así como que el controlador está dañado, tal vez una reinstalación de MDAC podría ayudar, pero por el momento estoy feliz de que esté funcionando.
fuente
¿Reconocería el nombre del servidor si estuviera completamente calificado? Si fuera MYSERVER.domain.com? Hemos tenido que hacer eso con SQL Server cuando nos conectamos desde un dominio diferente. Si puede hacer que el DSN del sistema ODBC se conecte cuando pruebe la fuente de datos, está progresando. Si no se conecta en la configuración de ODBC, primero debe solucionarlo.
fuente
MYSERVER.domain.com\SQLEXPRESS
yMYSERVER.domain.com
, pero ambas me dieron los mismos errores que enumeré anteriormente, respectivamente.¿Está utilizando canalizaciones con nombre o TCP en la conexión ODBC que funciona? ¿TCP está habilitado?
fuente
Asegúrese de tener las conexiones tcp remotas habilitadas para el servidor SQL.
fuente
Solo un tiro salvaje aquí, pero ¿qué sucede si coloca una barra diagonal inversa doble antes del nombre del servidor o la dirección IP? Simplemente me parece que normalmente se requiere para la mayoría de las otras conexiones de Windows / Microsoft.
fuente
Tuve un problema similar En mi caso, otro sw configura la configuración de ODBC para que no pueda cambiar el controlador. Resolví mi caso así:
Entonces comenzó a funcionar. SO del cliente: Win7 x64 Controlador: sqlsrv32.dll
fuente
Por lo que vale, comencé a recibir este error en una conexión que había estado funcionando anteriormente. Resultó que el servicio MSSQL $ SQLEXPRESS se había detenido de alguna manera. Reiniciarlo solucionó el problema.
fuente
También tuve este problema, y fue tan simple como esto: el servidor listado como el servidor DNS primario para este servidor fue eliminado, y la aplicación ya no pudo resolver correctamente el nombre del servidor SQL en la red. Todo comenzó a funcionar de inmediato cuando corrigí el servidor DNS local a uno que funcionara.
fuente