Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Se aplica a:Azure SQL Managed Instance
En este artículo se describe cómo conectar la aplicación a Azure SQL Managed Instance en varios escenarios de aplicación diferentes dentro o entre redes virtuales de Azure.
Hoy en día puede elegir entre varias opciones sobre cuándo y cómo hospedar la aplicación. Puede optar por hospedar una aplicación en la nube mediante Azure App Service o algunas de las opciones integradas de red virtual de Azure. Por ejemplo, Azure App Service Environment, Azure Virtual Machines y Virtual Machine Scale Sets. También podría elegir un enfoque de nube híbrida ("mixto") y mantener las aplicaciones en el entorno local. Sea cual sea la elección que elija, la aplicación puede conectarse a Azure SQL Managed Instance en muchos escenarios de aplicación diferentes dentro o entre redes virtuales de Azure.
También puede habilitar el acceso de datos a la instancia administrada de SQL desde fuera de una red virtual, por ejemplo, desde servicios multiinquilino de Azure, como Power BI y Azure App Service, o desde una red local no conectada a las redes virtuales a través de VPN. Para lograr estos escenarios y similares, consulte Configuración del punto de conexión público en Azure SQL Managed Instance.
Conexión desde dentro de la misma red virtual
La conexión de una aplicación dentro de la misma red virtual que Instancia administrada de SQL es el escenario más sencillo. Las máquinas virtuales dentro de la red virtual pueden conectarse directamente entre sí si se encuentran en subredes diferentes. Esto significa que, para conectar una aplicación que está en un entorno de App Service Environment o una máquina virtual, solo hace falta configurar la cadena de conexión para que apunte al punto de conexión de red virtual local.
Conexión desde dentro de una red virtual diferente
La conexión de una aplicación cuando reside en una red virtual diferente a la de SQL Managed Instance requiere que la aplicación obtenga acceso primero a la red virtual donde se implementa SQL Managed Instance o a la propia instancia de SQL Managed Instance. Las redes virtuales no tienen por qué estar en la misma suscripción.
Hay tres opciones para conectarse a SQL Managed Instance en una red virtual diferente:
- Puntos de conexión privados
- Emparejamiento de redes virtuales de Azure
- Puerta de enlace VPN de red virtual a red virtual (Azure Portal, PowerShell, CLI de Azure)
De las tres, los puntos de conexión privados son la opción más segura y económica para los recursos porque:
- solo exponen la instancia de SQL Managed Instance de su red virtual
- solo permiten conectividad unidireccional
- solo requieren una dirección IP en la red virtual de la aplicación
Si los puntos de conexión privados no pueden cumplir completamente los requisitos del escenario, considere la posibilidad de emparejamiento de redes virtuales en su lugar. El emparejamiento usa la red troncal de Azure, por lo que no hay ninguna penalización de latencia notable para la comunicación entre los límites de la red virtual. El emparejamiento de redes virtuales se admite entre redes en todas las regiones (emparejamiento de red virtual global). Sin embargo, las instancias hospedadas en subredes creadas antes del 22 de septiembre de 2020 solo admiten el emparejamiento dentro de su región.
Conexión desde el entorno local
Puede conectar la aplicación local al punto de conexión local de la red virtual de SQL Managed Instance. Para hacerlo desde el entorno local, debe establecer una conexión de sitio a sitio entre la aplicación y la red virtual de Instancia administrada de SQL. Si el acceso de solo datos a la instancia administrada de SQL es suficiente, puede conectarse a ella desde fuera de una red virtual a través de un punto de conexión público: consulte Configuración del punto de conexión público en Instancia administrada de Azure SQL para obtener más información.
Hay dos opciones para conectar una aplicación local a una red virtual de Azure:
- Conexión VPN de sitio a sitio (Azure Portal, PowerShell, CLI de Azure)
- Conexión de Azure ExpressRoute
Si puede establecer una conexión desde el entorno local a Azure, pero no puede establecer una conexión a SQL Managed Instance, compruebe si la ruta de acceso de red del cliente a la instancia administrada de SQL cumple los requisitos de conectividad para el tipo de conexión seleccionado.
Conexión del cuadro de desarrollador
También es posible conectar el cuadro de desarrollador a Instancia administrada de SQL. Para acceder al servicio desde su cuadro de desarrollador a través de una red virtual, primero debe establecer una conexión entre el cuadro de desarrollador y la red virtual de SQL Managed Instance. Para ello, configure una conexión de punto a sitio a una red virtual mediante la autenticación de certificados de Azure nativa. Para obtener más información, consulte Configuración de una conexión de punto a sitio para conectarse a Azure SQL Managed Instance desde un equipo local.
Para obtener acceso a datos a la instancia administrada de SQL desde fuera de una red virtual, consulte Configuración del punto de conexión público en Azure SQL Managed Instance.
Conexión a una red tipo spoke
Otro escenario común es donde se instala una puerta de enlace de VPN en una red virtual independiente (y quizás una suscripción ) - de la que hospeda INSTANCIA administrada de SQL (red central). La conectividad a SQL Managed Instance desde la red radial se configura a través de una de las opciones enumeradas en Conexión desde dentro de una red virtual diferente: puntos de conexión privados, emparejamiento de red virtual de Azure o una puerta de enlace de red virtual a red virtual.
En el siguiente diagrama de arquitectura de ejemplo se muestra el emparejamiento de red virtual:
Si va a emparejar redes en estrella tipo hub-and-spoke, asegúrese de que VPN Gateway vea las direcciones IP de la red del centro de conectividad. Para ello, realice los siguientes cambios en Configuración de emparejamiento:
- En la red virtual que hospeda la puerta de enlace de VPN, vaya a Emparejamientos, busque la conexión de red virtual emparejada de SQL Managed Instance y seleccione Permitir tránsito de puerta de enlace.
- En la red virtual que hospeda SQL Managed Instance (red central), vaya a Emparejamientos, busque la conexión de red virtual emparejada de la puerta de enlace de VPN y seleccione Usar puertas de enlace remotas.
Conexión de Azure App Service
También puede conectar una aplicación hospedada por Azure App Service cuando se integra con la red virtual. Para ello, seleccione uno de los mecanismos enumerados en Conectar desde dentro de una red virtual diferente. Para obtener acceso a datos a la instancia administrada de SQL desde fuera de una red virtual, consulte Configuración de puntos de conexión públicos en Azure SQL Managed Instance.
Un caso especial de conexión de Azure App Service a SQL Managed Instance es cuando se integra Azure App Service en una red emparejada a una red virtual de Instancia administrada de SQL. Ese caso requiere la siguiente configuración:
- La red virtual de INSTANCIA administrada de SQL NO debe tener una puerta de enlace
- La red virtual de Instancia administrada de SQL debe tener establecida la opción
Use remote gateways. - La red virtual emparejada debe tener establecida la opción
Allow gateway transit.
Este escenario se ilustra en el diagrama siguiente:
Nota
La característica de integración de red virtual no integra una aplicación con una red virtual que tenga una puerta de enlace de ExpressRoute. Incluso si la puerta de enlace de ExpressRoute está configurada en modo de coexistencia, la integración de red virtual no funciona. Si necesita acceder a recursos mediante una conexión de ExpressRoute, puede usar App Service Environment, que funciona en la red virtual.
Para solucionar problemas con el acceso de Azure App Service a través de una red virtual, consulte Solución de problemas con redes virtuales y aplicaciones.
Solución de problemas de conectividad
Para solucionar problemas de conectividad, revise la siguiente configuración:
Si no puede conectarse a SQL Managed Instance desde una máquina virtual de Azure dentro de la misma red virtual, pero una subred diferente, compruebe si tiene un grupo de seguridad de red (NSG) configurado en la subred de la máquina virtual que podría estar bloqueando el acceso. Además, permita el tráfico saliente en el puerto SQL 1433, ya que es necesario conectarse a través de la redirección dentro del límite de Azure. Para más información, revise los requisitos de los tipos de conexión de Azure SQL Managed Instance.
Asegúrese de que la propagación de las rutas de puerta de enlace está deshabilitada para la tabla de rutas asociada a la red virtual.
Si utiliza VPN de punto a punto, compruebe la configuración en Azure Portal para ver si detecta números de entrada/salida. Los números distintos de cero indican que Azure enruta el tráfico hacia y desde un entorno local.
Compruebe que la máquina cliente (que ejecuta el cliente de VPN) tenga entradas de ruta para todas las redes virtuales a las que necesita acceso. Las rutas se almacenan en
%AppData%\Roaming\Microsoft\Network\Connections\Cm\<GUID>\routes.txt.Como se muestra en esta imagen, hay dos entradas para cada red virtual implicada y una tercera entrada para el punto de conexión de VPN que está configurado en el portal.
Otra manera de comprobar las rutas es mediante el comando siguiente. La salida muestra las rutas a las diversas subredes:
C:\ >route print -4 =========================================================================== Interface List 14...54 ee 75 67 6b 39 ......Intel(R) Ethernet Connection (3) I218-LM 57...........................rndatavnet 18...94 65 9c 7d e5 ce ......Intel(R) Dual Band Wireless-AC 7265 1...........................Software Loopback Interface 1 Adapter=========================================================================== IPv4 Route Table =========================================================================== Active Routes: Network Destination Netmask Gateway Interface Metric 0.0.0.0 0.0.0.0 10.83.72.1 10.83.74.112 35 10.0.0.0 255.255.255.0 On-link 172.26.34.2 43 10.4.0.0 255.255.255.0 On-link 172.26.34.2 43 =========================================================================== Persistent Routes: NoneSi usa el emparejamiento de red virtual, asegúrese de seguir las instrucciones para establecer Permitir tránsito de puerta de enlace y Usar puertas de enlace remotas.
Si usa el emparejamiento de red virtual para conectar una aplicación hospedada por Azure App Service, y la red virtual de Instancia administrada de SQL tiene un intervalo de direcciones IP públicas, asegúrese de que la configuración de la aplicación hospedada permita que el tráfico saliente se enrute a redes con direcciones IP públicas. Siga las instrucciones que se indican en Integración con red virtual regional.
Versiones recomendadas de controladores y herramientas
Aunque las versiones anteriores pueden funcionar, en la tabla siguiente se enumeran las versiones mínimas recomendadas de las herramientas y controladores para conectarse a SQL Managed Instance:
| Controlador/Herramienta | Versión |
|---|---|
| .NET Framework | 4.6.1 o .NET Core |
| Controlador ODBC | v17 |
| Controlador PHP | 5.2.0 |
| Controlador JDBC | 6.4.0 |
| Controlador de Node.js | 2.1.1 |
| Controlador de OLEDB | 18.0.2.0 |
| SSMS | 18.0 o superior |
| SMO | 150 o superior |
Nota
Las versiones anteriores de los controladores JDBC 4.0 y 4.1 (disponibles con Java SE 6 y Java SE 7, respectivamente) pueden aparecer en el servidor como compatibles con TDS 7.4, aunque no implementan completamente TDS 7.4. Estos controladores no se pueden conectar a instancias administradas de SQL con su tipo de conexión establecido en redireccionamiento. Actualice los controladores a JDBC 4.2 o posterior, o cambie el tipo de conexión de la instancia a proxy.