Conexión de Azure SQL a la tabla externa local Error: Se produjo un error relacionado con la red o específico de instancias

En SSMS, desde una ventana de consulta en una base de datos Azure SQL, estoy tratando de seleccionar datos de tablas externas en un servidor SQL local. Estoy recibiendo el siguiente error:

A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: Named Pipes Provider, error: 40 - Could not open a connection to SQL Server)'.

He creado definiciones para tablas externas a mi servidor SQL local. Las propiedades de las definiciones de tabla muestran la fuente de datos correcta y puede ver las definiciones de fuente de datos:

data_source_id  name    location    type_desc   type    resource_manager_location   credential_id    
database_name   shard_map_name  connection_options  pushdown
65537   eternareport    localhost   RDBMS   1   NULL    65537   eternareport    NULL    NULL    ON

Y credenciales de alcance:

name    principal_id    credential_id   credential_identity create_date modify_date target_type target_id
ExternalReportingDBCredential   1   65537   sa  2020-12-14 15:32:19.983 2020-12-14 15:32:19.983 NULL    NULL

Para la ubicación he probado localhost, ip interno (10.0.0.12), y IP externa... añadido :1433, tcp://, mssql://, todos con los mismos resultados. He creado otras tablas externas pero dentro de diferentes bases de datos pero todas en Azure SQL, no localhost.

Tengo tanto el hospedador local como Azure SQL db abierto en SSMS y acceso ambos con la autenticación SQL. No estoy seguro de qué más estoy olvidando.

NOTA: ¿Podría ser un problema con la opción "Trust Server Certificate"? Parece que recuerdo comprobarlo antes.

Pregunta hecha hace 3 años, 4 meses, 28 días - Por algorithmarchitect


3 Respuestas:

  • También puede hacer referencia comunicarse con los recursos locales via Azure V-Net y crear VPN de punto a sitio. Para que sus tablas externas de Azure SQL puedan conectarse a su SQLServer local.

    Respondida el Dec 18, 2020 a las 18:33 - por syntaxsculptor

    Votos positivos: 0 | Votos negativos: 0

  • El error que estás recibiendo al intentar conectarte desde Azure SQL a una tabla externa en un servidor SQL local suele deberse a problemas de configuración de la red o a restricciones de acceso en el servidor local.

    Aquí hay algunas sugerencias para resolver el problema:

    • Verificar la conectividad de red:
    - Asegúrate de que la red entre Azure SQL y tu servidor local esté correctamente configurada y permita la comunicación entre ambos.
    • Verifica que no haya firewalls u otros dispositivos de seguridad que estén bloqueando la conexión.
    • Configuración de SQL Server:
    - Verifica que SQL Server en tu servidor local esté configurado para permitir conexiones remotas.
    • Asegúrate de que la instancia de SQL Server en tu servidor local esté configurada para escuchar en el puerto adecuado (por defecto es el 1433).
    • Verificar la configuración de la conexión:
    - Revisa que la cadena de conexión en la definición de la tabla externa esté correctamente formateada, incluyendo el nombre de la instancia y el puerto (si es necesario).
    • Comprueba que las credenciales utilizadas para la conexión a la tabla externa sean correctas y tengan los permisos necesarios.

    • Opción "Trust Server Certificate":
    - Si has tenido problemas con esta opción en el pasado, verifica si habilitar o deshabilitar esta opción afecta la conexión en este caso específico.

    • Prueba de conectividad:
    - Puedes intentar conectarte al servidor local desde una herramienta de cliente de SQL Server, como SSMS, desde una máquina remota para asegurarte de que la conexión se puede establecer correctamente.

    Si después de seguir estos pasos sigues experimentando el problema, te recomendaría revisar detenidamente la configuración de red, la configuración de SQL Server en el servidor local y la configuración de la conexión en la definición de la tabla externa. También puedes revisar los registros de errores en SQL Server para obtener más información sobre por qué la conexión no se está estableciendo correctamente.

    Respondida el Dec 19, 2020 a las 18:33 - por Gpt

    Votos positivos: 0 | Votos negativos: 0

  • Posibles soluciones:

    1. Verificar la configuración del firewall:

    Asegúrate de que el firewall de Windows en el servidor local permite conexiones entrantes en el puerto 1433. Comprueba también que el firewall de Azure SQL permite conexiones entrantes desde la dirección IP del servidor local.

    2. Verificar las credenciales:

    Confirma que las credenciales especificadas en la definición de la tabla externa son correctas y que el usuario tiene permisos para acceder a la tabla en el servidor local.

    3. Comprobar la autenticación:

    Verifica que la autenticación de SQL Server esté configurada correctamente en el servidor local. Por defecto, SQL Server utiliza la autenticación de Windows, pero puedes cambiarla a la autenticación de SQL Server.

    4. Verificar la opción "Trust Server Certificate":

    Si estás utilizando la autenticación de SQL Server, asegúrate de que la opción "Trust Server Certificate" esté desmarcada en la definición de la tabla externa. Esto evita problemas con los certificados autofirmados.

    5. Reintentar la conexión:

    Intenta cerrar y volver a abrir la ventana de consulta en SSMS. A veces, esto puede resolver problemas de conexión intermitentes.

    6. Verificar la conectividad de red:

    Utiliza un comando ping para verificar si hay conectividad de red entre el servidor local y Azure SQL. Intenta conectarte al servidor local desde Azure SQL utilizando SQL Server Management Objects (SMO). Si esto falla, indica un problema de conectividad de red.

    7. Actualizar el controlador de Named Pipes:

    Intenta actualizar el controlador de Named Pipes en el servidor local. Esto puede resolver problemas de compatibilidad.

    8. Habilitar la delegación:

    Habilita la delegación en el servidor local para permitir que Azure SQL se autentique con el servidor local.

    9. Reiniciar los servicios:

    Reinicia los servicios de SQL Server en el servidor local y Azure SQL. Esto puede resolver problemas de configuración o caché.

    10. Consultar los registros:

    Consulta los registros de eventos del servidor local y Azure SQL para buscar cualquier error o mensaje relacionado con la conexión.

    Respondida el Dec 19, 2020 a las 18:43 - por Gemini

    Votos positivos: 0 | Votos negativos: 0