Conexión a una máquina virtual de SQL Server en Azure
Se aplica a: SQL Server en máquina virtual de Azure
Información general
En este artículo se describe cómo conectarse a SQL en una máquina virtual (VM) de Azure. Trata algunos escenarios de conectividad generales. Si necesita solucionar problemas o configurar la conectividad fuera del portal, consulte la configuración manual al final de este tema.
Si prefiere tener un tutorial completo sobre aprovisionamiento y conectividad, vea Aprovisionamiento de una máquina virtual de SQL Server en Azure.
Escenarios de conexión
La forma en la que un cliente se conecta a una VM con SQL Server varía en función de la ubicación del cliente y la configuración de la red.
Si se aprovisiona una VM con SQL Server en Azure Portal, tiene la opción de especificar el tipo de conectividad SQL.
Estas son algunas de las opciones de conectividad:
Opción | Descripción |
---|---|
Pública | Conexión a SQL Server a través de Internet. |
Privada | Conexión a SQL Server en la misma red virtual. |
Local | Conexión a una instancia local de SQL Server en la misma máquina virtual. |
En las siguientes secciones se explican las opciones Pública y Privada con más detalle.
Conexión a SQL Server a través de Internet
Si quiere conectarse al motor de base de datos de SQL Server desde Internet, en el portal, seleccione Pública para el tipo de conectividad SQL durante el aprovisionamiento. El portal realiza automáticamente los siguientes pasos:
- Habilita el protocolo TCP/IP para SQL Server.
- Configura una regla de firewall para abrir el puerto TCP de SQL Server (predeterminado: 1433).
- Habilita la autenticación de SQL Server, que es necesaria para el acceso público.
- Configura el grupo de seguridad de red en la máquina virtual para todo el tráfico TCP del puerto de SQL Server.
Importante
Las imágenes de máquina virtual de SQL Server Developer Edition y SQL Server Express Edition no habilitan automáticamente el protocolo TCP/IP. Para estas dos ediciones, debe usar el Administrador de configuración de SQL Server con el fin de habilitar manualmente el protocolo TCP/IP después de crear la máquina virtual.
Cualquier cliente con acceso a Internet podrá conectarse a la instancia de SQL Server especificando la dirección IP pública de la máquina virtual o la etiqueta DNS asignada a esa dirección IP. Si el puerto de SQL Server es 1433, no es necesario que lo especifique en la cadena de conexión. La cadena de conexión siguiente se conecta a una VM con SQL con una etiqueta DNS de sqlvmlabel.eastus.cloudapp.azure.com
mediante la autenticación de SQL (también puede usar la IP pública).
Server=sqlvmlabel.eastus.cloudapp.azure.com;Integrated Security=false;User ID=<login_name>;Password=<your_password>
Aunque esta cadena permite a los clientes conectarse a través de Internet, esto no implica que cualquier usuario pueda conectarse a la instancia de SQL Server. Los clientes externos necesitan usar el nombre de usuario y la contraseña correctos. Sin embargo, para obtener más seguridad, puede evitar utilizar el conocido puerto 1433. Por ejemplo, si fuera a configurar SQL Server para escuchar en el puerto 1500 y establecer reglas adecuadas de firewall y de grupo de seguridad de red, podría conectarse si anexa el número de puerto al nombre del servidor. En el ejemplo siguiente se modifica lo anterior agregando un número de puerto personalizado, 1500, al nombre del servidor:
Server=sqlvmlabel.eastus.cloudapp.azure.com,1500;Integrated Security=false;User ID=<login_name>;Password=<your_password>"
Nota:
Cuando se realizan consultas de SQL Server en una máquina virtual a través de Internet, todos los datos salientes del centro de datos de Azure están sujetos a precios de transferencia de datos salientes normales.
Conexión a SQL Server en una red virtual
Al elegir Privada para el tipo de conectividad SQL en el portal, Azure configura la mayoría de los valores para que sean idénticos a los de Público. La única diferencia es que no hay ninguna regla de grupo de seguridad de red para permitir el tráfico externo en el puerto de SQL Server (predeterminado: 1433).
Importante
Las imágenes de máquina virtual de SQL Server Developer Edition y SQL Server Express Edition no habilitan automáticamente el protocolo TCP/IP. Para estas dos ediciones, debe usar el Administrador de configuración de SQL Server con el fin de habilitar manualmente el protocolo TCP/IP después de crear la máquina virtual.
La conectividad privada se suele utilizar junto con una red virtual, lo que permite varios escenarios. Puede conectar las máquinas virtuales en la misma red virtual, incluso si esas máquinas virtuales existen en distintos grupos de recursos. Asimismo, con una VPN de sitio a sitio, puede crear una arquitectura híbrida que conecta las máquinas virtuales con redes y máquinas locales.
Las redes virtuales también permiten unir las máquinas virtuales de Azure a un dominio. Esta es la única forma de usar la autenticación de Windows para SQL Server. Los demás escenarios de conexión requieren la autenticación de SQL con nombres de usuario y contraseñas.
Si configuró DNS en la red virtual, puede conectarse a la instancia de SQL Server si especifica el nombre de equipo de la máquina virtual de SQL Server en la cadena de conexión. En el siguiente ejemplo, también se da por hecho que se ha configurado la autenticación de Windows y que se ha concedido al usuario acceso a la instancia de SQL Server.
Server=mysqlvm;Integrated Security=true
Habilitación de TCP/IP para las ediciones Developer y Express
Al cambiar la configuración de conectividad de SQL Server, Azure no habilita automáticamente el protocolo TCP/IP para las ediciones Developer y Express de SQL Server. En los pasos siguientes se explica cómo habilitar manualmente TCP/IP para que pueda conectarse de forma remota mediante una dirección IP.
En primer lugar, conéctese a la máquina virtual SQL Server con Escritorio remoto.
Una vez que la máquina virtual de Azure se ha creado y está en ejecución, seleccione Máquina virtual y, luego, elija la nueva máquina virtual.
Seleccione Conectar y, luego, elija RDP en la lista desplegable para descargar el archivo RDP.
Abra el archivo RDP que ha descargado el explorador para la máquina virtual.
La conexión a Escritorio remoto le avisará de que no se puede identificar el publicador de esta conexión remota. Haga clic en Conectar para continuar.
En el cuadro de diálogo Seguridad de Windows, haga clic en Usar una cuenta diferente. Es posible que deba hacer clic en Más opciones para verlo. Use el nombre de usuario y la contraseña que configuró al crear la máquina virtual. Debe agregar una barra diagonal inversa delante del nombre de usuario.
Haga clic en Aceptar para conectar.
Después, habilite el protocolo TCP/IP con el Administrador de configuración de SQL Server.
Mientras está conectado a la máquina virtual con Escritorio remoto, busque Administrador de configuración:
En el panel de la consola de Administrador de configuración de SQL Server, expanda Configuración de red de SQL Server.
En el panel de la consola, haga clic en Protocols for MSSQLSERVER (Protocolos de MSSQLSERVER) (el nombre de la instancia predeterminada). En el panel de detalles, haga clic con el botón derecho en TCP y haga clic en Habilitar, en caso de que no esté habilitado.
En el panel de la consola, haga clic en Servicios de SQL Server. En el panel de detalles, haga clic con el botón derecho en SQL Server (nombre de la instancia) (la instancia predeterminada es SQL Server (MSSQLSERVER)) y, después, haga clic en Reiniciar para detener y reiniciar la instancia de SQL Server.
Cierre el Administrador de configuración de SQL Server.
Para obtener más información acerca de la habilitación de protocolos para el motor de base de datos de SQL Server, consulte Habilitar o deshabilitar un protocolo de red de servidor.
Conectarse con SSMS
En los pasos siguientes se muestra cómo crear una etiqueta opcional de DNS para la máquina virtual de Azure y, luego, conectarla con SQL Server Management Studio (SSMS).
Configuración de una etiqueta DNS para la dirección IP pública
Para conectarse al motor de base de datos de SQL Server desde Internet, considere configurar una etiqueta DNS para la dirección IP pública. Puede conectarse mediante una dirección IP, pero la etiqueta DNS crea un registro de dirección que es más fácil de identificar y abstrae la dirección IP pública subyacente.
Nota:
Si solo piensa conectarse a la instancia de SQL Server desde de la misma red virtual o de forma local, no necesita etiquetas DNS.
Para crear una etiqueta DNS, seleccione primero Máquinas virtuales en el portal. Seleccione su máquina virtual de SQL Server para que aparezcan sus propiedades.
En la introducción de la máquina virtual, seleccione Dirección IP pública.
En las propiedades de la dirección IP pública, expanda Configuración.
Escriba un nombre para la etiqueta DNS. Este nombre es un registro A que se puede usar para conectarse a la máquina virtual de SQL Server utilizando el nombre en lugar de usar directamente la dirección IP.
Seleccione el botón Guardar.
Conexión al motor de base de datos desde otro equipo
En otro equipo que esté conectado a Internet, abra SQL Server Management Studio (SSMS). Si no tiene SQL Server Management Studio, puede descargarla aquí.
En el cuadro de diálogo Conectar al servidor o Conectarse al motor de base de datos, edite el valor de Nombre del servidor. Escriba la dirección IP o el nombre DNS completo de la máquina virtual (que se determinó en la tarea anterior). También puede agregar una coma y proporcionar el puerto TCP de SQL Server. Por ejemplo,
tutorial-sqlvm1.westus2.cloudapp.azure.com,1433
.En el cuadro Autenticación, seleccione Autenticación de SQL Server.
En el cuadro Inicio de sesión , escriba un nombre de inicio de sesión de SQL válido.
En el cuadro Contraseña , escriba la contraseña de inicio de sesión.
Seleccione Conectar.
Configuración manual y solución de problemas
Aunque el portal proporciona opciones para configurar automáticamente la conectividad, es útil saber cómo configurarla manualmente. Comprender los requisitos también puede ayudar a solucionar problemas.
En la tabla siguiente se enumeran los requisitos para conectarse a SQL Server en la máquina virtual de Azure.
Requisito | Descripción |
---|---|
Habilitación del modo de autenticación de SQL Server | Para la conexión remota a la máquina virtual se necesita autenticación de SQL Server, a menos que se haya configurado Active Directory en una red virtual. |
Creación de un inicio de sesión de SQL | Si usa la autenticación de SQL, necesita un inicio de sesión de SQL con nombre de usuario y contraseña que también tenga permisos para la base de datos de destino. |
Habilitación del protocolo TCP/IP | SQL Server debe permitir conexiones a través de TCP. |
Habilitación de la regla de firewall para el puerto de SQL Server | El firewall de la máquina virtual debe permitir el tráfico entrante en el puerto de SQL Server (predeterminado: 1433). |
Creación de una regla del grupo de seguridad de red para el puerto 1433 de TCP | Se debe permitir que la máquina virtual reciba tráfico en el puerto de SQL Server (predeterminado: 1433) si desea conectarse a través de internet. Las conexiones locales y las exclusivas de la red virtual no lo necesitan. Este es el único paso necesario en Azure Portal. |
Sugerencia
Los pasos descritos en la tabla anterior se realizan automáticamente al configurar la conectividad en el portal. Solo debe seguir estos pasos para confirmar la configuración o configurar manualmente la conectividad de SQL Server.
Conexión a una máquina virtual de SQL Server en Azure mediante Microsoft Entra ID
Habilite la autenticación con Microsoft Entra ID (antes Azure Active Directory) para la instancia de SQL Server en Azure Virtual Machines a través de Azure Portal. La autenticación de SQL Server con Microsoft Entra solo se admite en SQL Server 2022 (16.x) y versiones posteriores.
Pasos siguientes
Para ver las instrucciones de aprovisionamiento junto con estos pasos de conectividad, vea Aprovisionamiento de una máquina virtual de SQL Server en Azure.
Para consultar otros temas relacionados con la ejecución de SQL Server en máquinas virtuales de Azure, vea SQL Server en máquinas virtuales de Azure.