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.
Applies to:Azure SQL Database
Azure Synapse Analytics
Al crear un nuevo servidor en Azure SQL Database o Azure Synapse Analytics denominado mysqlserver, por ejemplo, un firewall de nivel de servidor bloquea todo el acceso al punto de conexión público del servidor (al que se puede acceder en mysqlserver.database.windows.net). Para simplificar, se usa SQL Database para hacer referencia tanto a SQL Database como a Azure Synapse Analytics. Este artículo no se aplica a Azure SQL Managed Instance. Para obtener información sobre la configuración de red, consulte Conectar la aplicación a Azure SQL Managed Instance.
Nota
Microsoft Entra ID anteriormente se conocía como Azure Active Directory (Azure AD).
Funcionamiento del firewall
Los intentos de conexión desde Internet y Azure deben pasar por el firewall antes de que lleguen al servidor o la base de datos, como se muestra en el diagrama siguiente.
Importante
Azure Synapse solo admite reglas de firewall de IP de nivel de servidor. No es compatible con las de nivel de base de datos.
Reglas de firewall de IP en el nivel de servidor
Estas reglas permiten a los clientes acceder a todo el servidor, es decir, a todas la bases de datos que administra el servidor. Las reglas se almacenan en la base de datos. El número máximo de reglas de firewall de IP de nivel de servidor se limita a 256 para un servidor. Si tiene habilitada la configuración Permitir que los Servicios de Azure y los recursos accedan a este servidor, esto cuenta como una sola regla de firewall para el servidor.
Puede configurar reglas de firewall de IP de nivel de servidor mediante el portal de Azure, PowerShell o instrucciones Transact-SQL.
Nota
El número máximo de reglas de firewall de IP de nivel de servidor se limita a 256 al configurar mediante el portal de Azure.
- Para usar el portal o PowerShell, debe ser propietario o colaborador de la suscripción.
- Para usar Transact-SQL, debe conectarse a la base de datos
mastercomo inicio de sesión principal de nivel de servidor o como administrador de Microsoft Entra. (Un usuario con permisos de nivel de Azure debe primero crear una regla de firewall IP a nivel de servidor).
Nota
De forma predeterminada, durante la creación de un nuevo servidor SQL lógico desde el portal de Azure, la configuración Allow Azure Services y recursos para acceder a este servidor se establece en No.
Reglas de firewall de IP en el nivel de base de datos
Las reglas de firewall de IP de nivel de base de datos permiten a los clientes acceder a determinadas bases de datos (seguras). Las reglas se crean para cada base de datos (incluida la base de datos) y se almacenan en la base de datos individual.
- Solo puede crear y gestionar reglas de firewall de IP a nivel de base de datos para
mastery bases de datos de usuarios mediante instrucciones Transact-SQL, y únicamente después de configurar el primer firewall a nivel de servidor. - Si especifica un intervalo de direcciones IP en la regla de firewall de IP de nivel de base de datos que se encuentra fuera del intervalo indicado en la regla de firewall de IP de nivel de servidor, solo los clientes que tengan direcciones IP en el intervalo de nivel de base de datos pueden tener acceso a la base de datos.
- El valor predeterminado es de hasta 256 reglas de firewall de IP de nivel de base de datos para una base de datos. Para obtener más información sobre cómo configurar reglas de firewall de IP de nivel de base de datos, consulte el ejemplo que aparece más adelante en este artículo y vea sp_set_database_firewall_rule (Azure SQL Database).
Recomendaciones para establecer reglas de firewall
Use reglas de firewall de IP de nivel de base de datos siempre que sea posible. Este procedimiento mejora la seguridad y consigue que la base de datos sea más portátil. Use reglas de firewall de IP de nivel de servidor para los administradores. También puede usarlas cuando tenga muchas bases de datos con los mismos requisitos de acceso y no quiera configurar individualmente cada una de ellas.
Nota
Para obtener información sobre las bases de datos portátiles en el contexto de la continuidad empresarial, consulte Configurar y administrar Azure SQL Database seguridad para la restauración geográfica o conmutación por error.
Reglas de firewall de IP de nivel de servidor frente a nivel de base de datos
¿Los usuarios de una base de datos deben estar completamente aislados de otra base de datos?
En caso afirmativo, use reglas de firewall de IP de nivel de base de datos para conceder acceso. Este método evita el uso de reglas de firewall de IP de nivel de servidor, que permiten el acceso a través del firewall a todas las bases de datos. Esto reduce la solidez de sus defensas.
¿Los usuarios de las direcciones IP necesitan acceso a todas las bases de datos?
En caso afirmativo, utilice reglas de firewall de IP de nivel de servidor para reducir el número de veces que tiene que configurar este tipo de reglas.
Does la persona o el equipo que configura las reglas de firewall de IP solo tienen acceso a través del portal de Azure, PowerShell o la API REST?
En caso afirmativo, debe usar reglas de firewall de IP de nivel de servidor. Las reglas de firewall de IP de nivel de base de datos solo se pueden configurar a través de Transact-SQL.
¿Está prohibido que la persona o el equipo que configura las reglas de firewall de IP tenga permisos elevados en el nivel de base de datos?
En caso afirmativo, use reglas de firewall de IP de nivel de servidor. Necesita al menos permiso de CONTROL DATABASE a nivel de base de datos para configurar reglas de firewall de IP a nivel de base de datos a través de Transact-SQL.
¿La persona o el equipo que configura o audita las reglas de firewall de IP administra de forma centralizada las reglas de firewall de IP para muchas bases de datos (quizá cientos)?
En este escenario, los procedimientos recomendados se determinan en función de las necesidades y el entorno. Las reglas de firewall de IP de nivel de servidor pueden ser más fáciles de configurar, pero con scripting se pueden configurar reglas en el nivel de base de datos. Aunque use las reglas de firewall de IP de nivel de servidor, podría necesitar auditar las reglas de firewall de IP de nivel de base de datos para ver si los usuarios con permiso CONTROL en la base de datos crean reglas de firewall de IP en este nivel.
¿Puedo usar una combinación de reglas de firewall de IP de nivel de servidor y de base de datos?
Sí. Algunos usuarios, por ejemplo, los administradores, pueden necesitar reglas de firewall de IP de nivel de servidor. Otros usuarios, como los usuarios de una aplicación de base de datos, pueden necesitar reglas de firewall de IP de nivel de base de datos.
Conexiones desde Internet
Cuando un equipo intenta conectarse al servidor desde Internet, el firewall comprueba primero la dirección IP de origen de la solicitud con las reglas de firewall de IP de nivel de base de datos, para la base de datos que se solicita en la conexión.
- Si la dirección está comprendida en uno de los intervalos especificados en las reglas de firewall de IP de nivel de base de datos, se concede la conexión a la base de datos que contiene la regla.
- Si la dirección no está comprendida en uno de los intervalos de las reglas de IP de nivel de base de datos, el firewall comprueba las reglas de firewall de IP de nivel de servidor. Si la dirección está incluida en uno de los intervalos de estas reglas, se concede la conexión. Las reglas de firewall de IP de nivel de servidor se aplican a todas las bases de datos que administra el servidor.
- Si la dirección no se encuentra dentro de los intervalos especificados en cualquiera de las reglas de firewall de IP de nivel de base de datos o de servidor, la solicitud de conexión genera un error.
Nota
Para acceder a Azure SQL Database desde el equipo local, asegúrese de que el firewall de la red y el equipo local permitan la comunicación saliente en el puerto TCP 1433.
Conexiones desde dentro de Azure
Para permitir que las aplicaciones hospedadas dentro de Azure se conecten a SQL Server, debe habilitar Azure conexiones. Para ello, cree una regla de firewall con las direcciones IP iniciales y finales establecidas en 0.0.0.0. Esta regla solo se aplica a Azure SQL Database.
Cuando una aplicación de Azure intenta conectarse al servidor, el firewall comprueba que Azure conexiones se permiten comprobando que existe esta regla de firewall. Esto se puede activar directamente desde el panel del portal de Azure cambiando la opción Permitir que los Servicios y recursos de Azure accedan a este servidor a ON en la configuración de Firewalls y redes virtuales. Al cambiar la configuración a Activado, se crea una regla de firewall de entrada para IP 0.0.0.0 - 0.0.0.0 denominada AllowAllWindowsAzureIps. La regla se puede ver en la vista de la base de datos . Use PowerShell o el CLI de Azure para crear una regla de firewall con direcciones IP iniciales y finales establecidas en 0.0.0.0 si no usa el portal.
Advertencia
La habilitación de esta opción permite conexiones desde servicios all Azure, incluyendo servicios que se ejecutan en suscripciones de otros clientes. Esta regla no restringe el acceso a la suscripción o al grupo de recursos; ningún recurso de Azure con conectividad saliente a Azure SQL Database puede conectarse. Al habilitar esta configuración, asegúrese de que los permisos de inicio de sesión y de usuario limitan el acceso solo a los usuarios autorizados.
Los siguientes servicios Azure suelen usar esta regla para conectarse a Azure SQL Database:
- Azure App Service y Azure Functions
- Azure Data Factory
- Azure Stream Analytics
- Azure Logic Apps
- Azure Power BI
- Servicios de Azure AI
Para mejorar la seguridad, considere la posibilidad de usar puntos de conexión de servicio de red virtual o puntos de conexión privados en lugar de la regla AllowAllWindowsAzureIps . Estas alternativas limitan la conectividad a subredes específicas o redes privadas en lugar de permitir todas las direcciones IP de Azure.
Permisos
Para crear y administrar reglas de firewall de IP para Azure SQL Server, debe tener uno de los roles siguientes:
- en el rol colaborador de SQL Server
- en el rol Administrador de seguridad de SQL
- el propietario del recurso que contiene Azure SQL Server
Creación y administración de reglas de firewall de IP
Cree la primera configuración de firewall de nivel de servidor mediante el portal Azure o mediante programación mediante Azure PowerShell, CLI de Azure o una API Azure REST. Puede crear y administrar reglas de firewall de IP de nivel de servidor adicionales mediante estos métodos o Transact-SQL.
Importante
Las reglas de firewall de IP de nivel de base de datos solo se pueden crear y administrar mediante Transact-SQL.
Para mejorar el rendimiento, las reglas de firewall de IP de nivel de servidor se almacenan temporalmente en caché en el nivel de base de datos. Para actualizar la memoria caché, consulte DBCC FLUSHAUTHCACHE.
Sugerencia
Puede usar Auditing para Azure SQL Database y Azure Synapse Analytics para auditar los cambios en el firewall de nivel de servidor y de base de datos.
Uso del portal de Azure para administrar reglas de firewall de IP de nivel de servidor
Para establecer una regla de firewall de IP de nivel de servidor en el portal de Azure, vaya a la página de información general de la base de datos o del servidor.
Sugerencia
Para ver un tutorial, consulte Quickstart: Creación de una base de datos única: Azure SQL Database.
Desde la página de información general de la base de datos
Para establecer una regla de firewall de IP de nivel de servidor desde la página de información general de la base de datos, seleccione Establecer el firewall del servidor en la barra de herramientas, como se muestra en la siguiente imagen.
Se abre la página Redes del servidor.
Agregue una regla a la sección Reglas de firewall para agregar la dirección IP del equipo que está usando y, luego, seleccione Guardar. Se creará una regla de firewall de IP de nivel de servidor para la dirección IP actual.
Captura de pantalla que muestra la página Redes donde puede establecer las reglas de firewall de IP de nivel de servidor.
Desde la página de información general del servidor
Se abre la página de información general del servidor. Muestra el nombre completo del servidor (por ejemplo, mynewserver20170403.database.windows.net) y proporciona opciones para otras configuraciones.
Para establecer una regla de nivel de servidor desde esta página, seleccione Firewall en el menú Configuración del lado izquierdo.
Agregue una regla a la sección Reglas de firewall para agregar la dirección IP del equipo que está usando y, luego, seleccione Guardar. Se creará una regla de firewall de IP de nivel de servidor para la dirección IP actual.
Uso de Transact-SQL para administrar reglas de firewall de IP
| Vista de catálogo o procedimiento almacenado | Nivel | Descripción |
|---|---|---|
| sys.firewall_rules | Servidor | Muestra las reglas de firewall de IP de nivel de servidor actuales |
| sp_set_firewall_rule | Servidor | Crea o actualiza las reglas de firewall de IP de nivel de servidor |
| sp_delete_firewall_rule | Servidor | Quita las reglas de firewall de IP de nivel de servidor |
| sys.database_firewall_rules | Base de datos | Muestra las reglas de firewall de IP de nivel de base de datos actuales |
| sp_set_database_firewall_rule | Base de datos | Crea o actualiza las reglas de firewall de IP de nivel de base de datos |
| sp_delete_database_firewall_rule | Bases de datos | Quita las reglas de firewall de IP de nivel de base de datos |
En el ejemplo siguiente se revisan las reglas existentes, se habilita un intervalo de direcciones IP en el servidor Contoso y se elimina una regla de firewall de IP:
SELECT * FROM sys.firewall_rules ORDER BY name;
A continuación, agregue una regla de firewall de IP de nivel de servidor.
EXECUTE sp_set_firewall_rule @name = N'ContosoFirewallRule',
@start_ip_address = '192.168.1.1', @end_ip_address = '192.168.1.10'
Para eliminar una regla de firewall de IP de nivel de servidor, ejecute el procedimiento almacenado sp_delete_firewall_rule. En el ejemplo siguiente se elimina la regla ContosoFirewallRule:
EXECUTE sp_delete_firewall_rule @name = N'ContosoFirewallRule'
Uso de PowerShell para administrar reglas de firewall de IP de nivel de servidor
Nota
En este artículo se usa el módulo Azure Az de PowerShell, que es el módulo de PowerShell recomendado para interactuar con Azure. Para empezar a trabajar con el módulo Az PowerShell, consulte Install Azure PowerShell. Para obtener información sobre cómo migrar al módulo Az PowerShell, consulte Migrate Azure PowerShell de AzureRM a Az.
Importante
El módulo Azure Resource Manager de PowerShell (AzureRM) ha quedado en desuso el 29 de febrero de 2024. Todo el desarrollo futuro debe usar el módulo Az.Sql. Se recomienda a los usuarios migrar de AzureRM al módulo Az PowerShell para seguir recibiendo soporte técnico y actualizaciones. El módulo AzureRM ya no cuenta con mantenimiento ni soporte. Los argumentos de los comandos del módulo Az PowerShell y en los módulos AzureRM son sustancialmente idénticos. Para obtener más información sobre su compatibilidad, consulte Introducción al nuevo módulo de Az PowerShell.
| Cmdlet | Nivel | Descripción |
|---|---|---|
| Get-AzSqlServerFirewallRule | Servidor | Devuelve las reglas de firewall de nivel de servidor actuales |
| New-AzSqlServerFirewallRule | Servidor | Crear una regla de firewall de nivel de servidor |
| Set-AzSqlServerFirewallRule | Servidor | Actualiza las propiedades de una regla de firewall de nivel de servidor existente |
| Remove-AzSqlServerFirewallRule | Servidor | Elimina las reglas de firewall de nivel de servidor |
En el ejemplo siguiente se usa PowerShell para establecer una regla de firewall de IP de nivel de servidor:
New-AzSqlServerFirewallRule -ResourceGroupName "myResourceGroup" `
-ServerName $servername `
-FirewallRuleName "ContosoIPRange" -StartIpAddress "192.168.1.0" -EndIpAddress "192.168.1.255"
Sugerencia
En , especifique el nombre del servidor y no el nombre DNS completo (por ejemplo, especifique mysqldbserver en lugar de mysqldbserver.database.windows.net).
Para obtener ejemplos de PowerShell en el contexto de un inicio rápido, consulte Azure PowerShell ejemplos de Azure SQL Database y Use PowerShell para crear una base de datos única y configurar una regla de firewall de nivel de servidor.
Uso de la CLI para administrar reglas de firewall de IP de nivel de servidor
| Cmdlet | Nivel | Descripción |
|---|---|---|
| az sql server firewall-rule create (Crear regla de firewall del servidor SQL) | Servidor | Crea una regla de firewall de IP del servidor |
| az sql server firewall-rule list - Comando SQL para listar reglas de firewall en el servidor. | Servidor | Enumera las reglas de firewall de IP en un servidor |
| az sql server regla-de-firewall mostrar | Servidor | Muestra los detalles de una regla de firewall de IP. |
| az sql server firewall-rule update (actualización) | Servidor | Actualiza una regla de firewall de IP. |
| az sql server firewall-rule delete: utiliza este comando para eliminar una regla del firewall en un servidor SQL. | Servidor | Elimina una regla de firewall de IP. |
En el ejemplo siguiente se usa la CLI para establecer una regla de firewall de IP de nivel de servidor:
az sql server firewall-rule create --resource-group myResourceGroup --server $servername \
-n ContosoIPRange --start-ip-address 192.168.1.0 --end-ip-address 192.168.1.255
Sugerencia
En , especifique el nombre del servidor y no el nombre DNS completo. Por ejemplo, use en lugar de .
Para obtener un ejemplo de la CLI en el contexto de una guía de inicio rápido, consulte Ejemplos de la CLI de Azure para la base de datos SQL de Azure y Crear una base de datos única y configurar una regla de firewall utilizando la CLI de Azure.
Para Azure Synapse Analytics, consulte los ejemplos siguientes:
| Cmdlet | Nivel | Descripción |
|---|---|---|
| az synapse workspace crear regla de firewall | Servidor | Creación de una regla de firewall |
| az synapse workspace firewall-rule delete: Este comando se utiliza para eliminar una regla de firewall dentro del área de trabajo de Synapse. | Servidor | Eliminar una regla de firewall |
| az synapse espacio de trabajo lista de reglas de firewall | Servidor | Enumeración de todas las reglas de firewall |
| az synapse workspace firewall-rule show | Servidor | Obtener una regla de firewall |
| az synapse actualizar regla de firewall del espacio de trabajo | Servidor | Actualización de una regla de firewall |
| az synapse workspace firewall-rule wait | Servidor | Colocación de la CLI en estado de espera hasta que se cumpla una condición de una regla de firewall |
En el ejemplo siguiente se usa la CLI para establecer una regla de firewall de IP de nivel de servidor en Azure Synapse:
az synapse workspace firewall-rule create --name AllowAllWindowsAzureIps --workspace-name $workspacename --resource-group $resourcegroupname --start-ip-address 0.0.0.0 --end-ip-address 0.0.0.0
Uso de API REST para administrar reglas de firewall de IP de nivel de servidor
| API | Nivel | Descripción |
|---|---|---|
| Enumerar reglas de firewall | Servidor | Muestra las reglas de firewall de IP de nivel de servidor actuales |
| Crear o actualizar regla de firewall | Servidor | Crea o actualiza las reglas de firewall de IP de nivel de servidor |
| Eliminar reglas de firewall | Servidor | Quita las reglas de firewall de IP de nivel de servidor |
| Obtener reglas de firewall | Servidor | Obtiene las reglas de firewall de IP de nivel de servidor |
Descripción de la latencia de las actualizaciones del firewall
El modelo de autenticación del servidor tiene una latencia de 5 minutos para todos los cambios en la configuración de seguridad, a menos que la base de datos esté contenida y sin un asociado de conmutación por error. Los cambios realizados en bases de datos independientes sin un asociado de conmutación por error son instantáneos. En el caso de las bases de datos independientes con un asociado de conmutación por error, cada actualización de seguridad es instantánea en la base de datos principal, pero la base de datos secundaria puede tardar hasta 5 minutos en reflejar los cambios.
En la tabla siguiente se describe la latencia de los cambios de configuración de seguridad en función del tipo de base de datos y la configuración de conmutación por error:
| Modelo de autenticación | Conmutación por error configurada | Latencia para los cambios en la configuración de seguridad | Instancias latentes |
|---|---|---|---|
| Autenticación del servidor | Sí | 5 minutos | todas las bases de datos |
| Autenticación del servidor | No | 5 minutos | todas las bases de datos |
| Base de datos contenida | Sí | 5 minutos | la base de datos secundaria |
| Base de datos contenida | No | Ninguno | Ninguno |
Actualización manual de reglas de firewall
Si necesita ver que las reglas de firewall se actualizan más rápidamente que la latencia de 5 minutos, puede actualizar manualmente las reglas de firewall. Inicie sesión en la instancia de base de datos que necesita sus reglas actualizadas y ejecute DBCC FLUSHAUTHCACHE. Esto hará que la instancia de base de datos vacíe su caché local y actualice las reglas de firewall.
DBCC FLUSHAUTHCACHE[;]
Solución de problemas del firewall de base de datos
Tenga en cuenta los siguientes puntos cuando el acceso a Azure SQL Database no se comporta según lo previsto.
Configuración del firewall local:
Para que el equipo pueda acceder a Azure SQL Database, es posible que tenga que crear una excepción de firewall en el equipo para el puerto TCP 1433. Para establecer conexiones dentro del límite de Azure nube, es posible que tenga que abrir puertos adicionales. Para obtener más información, consulte la sección "Base de Datos SQL: Externo e interno" de Puertos más allá del 1433 para ADO.NET 4.5.
Traducción de direcciones de red:
Debido a la traducción de direcciones de red (NAT), la dirección IP que usa el equipo para conectarse a Azure SQL Database podría ser diferente de la dirección IP en las opciones de configuración de IP del equipo. Para ver la dirección IP que usa el equipo para conectarse a Azure:
- Inicie sesión en el portal.
- Vaya a la pestaña Configurar en el servidor que hospeda la base de datos.
- En la sección Direcciones IP permitidas se muestra Dirección IP del cliente actual. Seleccione Agregar en la opción Direcciones IP permitidas para permitir que este equipo acceda al servidor.
Los cambios en la lista de permitidos aún no se han aplicado:
Puede haber hasta un retraso de cinco minutos para que los cambios en la configuración del firewall de Azure SQL Database surtan efecto.
El inicio de sesión no está autorizado o se ha usado una contraseña incorrecta:
Si un inicio de sesión no tiene permisos en el servidor o la contraseña no es correcta, se denegará la conexión al servidor. La creación de una configuración de firewall solo ofrece a los clientes la oportunidad de intentar conectarse al servidor. El cliente todavía debe proporcionar las credenciales de seguridad necesarias. Para obtener más información sobre cómo preparar credenciales, consulte Authorize database access to SQL Database, SQL Managed Instance, and Azure Synapse Analytics.
Dirección IP dinámica:
Si tiene una conexión a Internet que usa direccionamiento IP dinámico y tiene problemas para atravesar el firewall, pruebe una de las soluciones siguientes:
- Solicite al proveedor de servicios de Internet el intervalo de direcciones IP asignado a los equipos cliente que acceden al servidor. Agregue este intervalo como una regla de firewall de IP.
- Obtenga el direccionamiento IP estático en su lugar para los equipos cliente. Agregue las direcciones IP como reglas de firewall de IP.