Compartilhar via


Regras de firewall de IP do Azure SQL Database e do Azure Synapse

Applies to:Azure SQL DatabaseAzure Synapse Analytics

Quando você cria um novo servidor em Azure SQL Database ou Azure Synapse Analytics chamado mysqlserver, por exemplo, um firewall no nível do servidor bloqueia todo o acesso ao ponto de extremidade público do servidor (que é acessível em mysqlserver.database.windows.net). Para simplificar, SQL Database é usado para se referir ao Banco de Dados SQL e Azure Synapse Analytics. Este artigo não se aplica a Azure SQL Managed Instance. Para obter informações sobre a configuração de rede, consulte Conecte seu aplicativo para Azure SQL Managed Instance.

Observação

Microsoft Entra ID era conhecido anteriormente como Azure Active Directory (Azure AD).

Como o firewall funciona

As tentativas de conexão da Internet e Azure devem passar pelo firewall antes de chegarem ao servidor ou banco de dados, como mostra o diagrama a seguir.

Diagrama do firewall Azure SQL Database.

Importante

Azure Synapse só dá suporte a regras de firewall de IP no nível do servidor. Ele não oferece suporte a regras de firewall de IP de nível de banco de dados.

Regras de firewall de IP no nível de servidor

Essas regras permitem que os clientes acessem seu servidor inteiro, ou seja, todos os bancos de dados gerenciados pelo servidor. As regras são armazenadas no master banco de dados. O número máximo de regras de firewall de IP no nível do servidor é limitado a 256 para um servidor. Se você tiver a configuração Permitir que serviços e recursos do Azure acessem este servidor habilitada, isso conta como uma única regra de firewall para o servidor.

Você pode configurar regras de firewall de IP no nível do servidor usando as instruções Azure portal, PowerShell ou Transact-SQL.

Observação

O número máximo de regras de firewall de IP no nível do servidor é limitado a 256 ao configurar usando o portal Azure.

  • Para usar o portal ou o PowerShell, você deve ser o proprietário da assinatura ou um colaborador da assinatura.
  • Para usar Transact-SQL, você deve se conectar ao banco de dados master como o logon principal no nível do servidor ou como administrador do Microsoft Entra. (Uma regra de firewall de IP no nível do servidor deve primeiro ser criada por um usuário que tenha permissões de nível de Azure.)

Observação

Por padrão, durante a criação de um novo SQL Server lógico no portal do Azure, a configuração Allow Azure Services e recursos para acessar esse servidor está definida como No.

Regras de firewall de IP no nível de banco de dados

Regras de firewall de IP no nível do banco de dados permitem que os clientes acessem alguns bancos de dados (seguros). Você cria as regras para cada banco de dados (incluindo o master banco de dados) e elas são armazenadas no banco de dados individual.

  • Você só pode criar e gerenciar regras de firewall de IP no nível do banco de dados para master e bancos de dados de usuário usando instruções Transact-SQL e somente depois de configurar o primeiro firewall no nível do servidor.
  • Se você especificar um intervalo de endereços IP na regra de firewall de IP no nível do banco de dados que está fora do intervalo na regra de firewall de IP no nível do servidor, somente os clientes com endereços IP no intervalo de nível de banco de dados poderão acessar o banco de dados.
  • O valor padrão é até 256 regras de firewall de IP no banco de dados para um banco de dados. Para obter mais informações sobre como configurar regras de firewall de IP no nível do banco de dados, consulte o exemplo mais adiante neste artigo e consulte sp_set_database_firewall_rule (Azure SQL Database).

Recomendações sobre como definir regras de firewall

Use regras de firewall de IP no nível do banco de dados sempre que possível. Essa prática aprimora a segurança e torna seu banco de dados mais portátil. Use regras de firewall de IP de nível de servidor para administradores. Use-as também quando tiver muitos bancos de dados com os mesmos requisitos de acesso e não quiser configurar cada um individualmente.

Observação

Para obter informações sobre bancos de dados portáteis no contexto de continuidade dos negócios, consulte Configurar e gerenciar a segurança do Azure SQL Database para restauração geográfica ou failover.

Regras de firewall de IP no nível de servidor versus no nível de banco de dados

Os usuários de um banco de dados devem ser totalmente isolados de outro banco de dados?

Em caso afirmativo, use regras de firewall de IP no nível do banco de dados para conceder acesso. Esse método evita o uso de regras de firewall de IP no nível de servidor, o que permite o acesso pelo firewall a todos os bancos de dados. Isso reduzirá a profundidade das defesas.

Os usuários nos endereços IP precisam de acesso a todos os bancos de dados?

Em caso afirmativo, use regras de firewall de IP no nível do servidor para reduzir o número de vezes que você precisa configurar regras de firewall de IP.

A pessoa ou equipe que configura as regras de firewall de IP só tem acesso por meio do portal Azure, do PowerShell ou da API REST?

Se sim, é necessário usar regras de firewall de IP no nível de servidor. As regras de firewall de IP no nível do banco de dados só podem ser configuradas por meio de Transact-SQL.

A pessoa ou a equipe que configura as regras de firewall de IP está proibida de ter permissão de alto nível no nível do banco de dados?

Se sim, use regras de firewall de IP no nível de servidor. Você precisa de pelo menos CONTROL DATABASE permissão no nível do banco de dados para configurar regras de firewall de IP no nível do banco de dados por meio de Transact-SQL.

A pessoa ou equipe que configura ou audita as regras de firewall de IP gerencia centralmente as regras de firewall de IP para muitos (talvez centenas) de bancos de dados?

Nesse cenário, as práticas recomendadas são determinadas de acordo com as necessidades e o ambiente. As regras de firewall de IP no nível de servidor podem ser mais fáceis de serem configuradas, mas o script pode configurar regras no nível de banco de dados. E mesmo se você usar regras de firewall de IP no nível do servidor, talvez seja necessário auditar as regras de firewall de IP no nível do banco de dados para ver se os usuários com permissão CONTROL no banco de dados criam regras de firewall de IP no nível do banco de dados.

Posso usar uma combinação de regras de firewall de IP no nível do servidor e no nível do banco de dados?

Sim. Alguns usuários, como administradores, podem precisar de regras de firewall de IP no nível de servidor. Outros usuários, como usuários de um aplicativo de banco de dados, podem precisar de regras de firewall de IP no nível de banco de dados.

Conexões pela Internet

Quando um computador tenta se conectar ao servidor pela Internet, o firewall primeiro verifica o endereço IP de origem da solicitação com base nas regras de firewall de IP no nível de banco de dados para o banco de dados que a conexão está solicitando.

  • Se o endereço estiver dentro de um intervalo especificado nas regras de firewall de IP no nível do banco de dados, a conexão será concedida ao banco de dados que contém a regra.
  • Se o endereço não estiver dentro de um intervalo nas regras de firewall de IP no nível do banco de dados, o firewall verificará as regras de firewall de IP no nível de servidor. Se o endereço estiver dentro de um intervalo que está nas regras de firewall de IP no nível de servidor, a conexão será concedida. As regras de firewall de IP no nível de servidor se aplicam a todos os bancos de dados gerenciados pelo servidor.
  • Se o endereço não estiver dentro de um intervalo em uma das regras de firewall de IP no nível de banco de dados ou de servidor, a solicitação de conexão falhará.

Observação

Para acessar Azure SQL Database do computador local, verifique se o firewall na rede e no computador local permite a comunicação de saída na porta TCP 1433.

Conexões de dentro do Azure

Para permitir que os aplicativos hospedados no Azure se conectem ao SQL Server, você precisa habilitar Azure conexões. Para fazer isso, crie uma regra de firewall com endereços IP iniciais e finais definidos como 0.0.0.0. Essa regra se aplica apenas a Azure SQL Database.

Quando um aplicativo do Azure tenta se conectar ao servidor, o firewall verifica se Azure conexões são permitidas verificando se essa regra de firewall existe. Isso pode ser ativado diretamente pelo painel do portal do Azure alternando a opção Permitir que os Serviços e recursos do Azure acessem este servidor para ATIVADO nas configurações de Firewalls e redes virtuais. Alternar a configuração para ON cria uma regra de firewall de entrada para IP 0.0.0.0 – 0.0.0.0 chamada AllowAllWindowsAzureIps. A regra pode ser visualizada na visualização do banco de dados mastersys.firewall_rules. Use o PowerShell ou o Azure CLI para criar uma regra de firewall com endereços IP de início e término definidos como 0.0.0.0 se você não estiver usando o portal.

Aviso

Habilitar essa opção permite conexões de serviços all Azure, incluindo serviços em execução em assinaturas de outros clientes. Essa regra não restringe o acesso à sua assinatura ou grupo de recursos. Qualquer recurso Azure com conectividade de saída com Azure SQL Database pode se conectar. Ao habilitar essa configuração, verifique se suas permissões de logon e de usuário limitam o acesso somente a usuários autorizados.

Os seguintes serviços de Azure geralmente usam essa regra para se conectar a Azure SQL Database:

  • Azure App Service e Azure Functions
  • Azure Data Factory
  • Azure Stream Analytics
  • Azure Logic Apps
  • Azure Power BI
  • Azure AI services

Para segurança aprimorada, considere usar pontos de extremidade de serviço de rede virtual ou pontos de extremidade privados em vez da regra AllowAllWindowsAzureIps . Essas alternativas limitam a conectividade a sub-redes específicas ou redes privadas em vez de permitir todos os endereços IP Azure.

Permissões

Para criar e gerenciar regras de firewall de IP para o SQL Server do Azure, você precisa ter uma das seguintes funções:

Criar e gerenciar regras de firewall de IP

Crie a primeira configuração de firewall no nível do servidor usando o portal Azure ou programaticamente usando Azure PowerShell, Azure CLI ou uma API Azure REST. Você cria e gerencia regras adicionais de firewall de IP no nível do servidor usando esses métodos ou Transact-SQL.

Importante

As regras de firewall de IP no nível do banco de dados só podem ser criadas e gerenciadas usando Transact-SQL.

Para melhorar o desempenho, as regras de firewall de IP de nível de servidor são temporariamente armazenadas em cache no nível do banco de dados. Para atualizar o cache, consulte DBCC FLUSHAUTHCACHE.

Dica

Você pode usar a Auditoria para Azure SQL Database e Azure Synapse Analytics para auditar as alterações de firewall nos níveis de servidor e de banco de dados.

Usar o portal Azure para gerenciar regras de firewall de IP no nível do servidor

Para definir uma regra de firewall de IP no nível do servidor no portal do Azure, vá para a página de visão geral do banco de dados ou do servidor.

Na página de visão geral do banco de dados

  1. Para definir uma regra de firewall de IP no nível do servidor na página de visão geral do banco de dados, selecione Definir firewall do servidor na barra de ferramentas, como mostra a imagem a seguir.

    Screenshot da configuração de firewall do servidor definido no Azure portal.

    A página Rede do servidor é aberta.

  2. Adicione uma regra na seção Regras de Firewall para adicionar o endereço IP do computador que você está usando e selecione Salvar. Uma regra de firewall de IP no nível do servidor é criada para seu endereço IP atual.

    A captura de tela mostra a página Rede em que você pode definir as regras de firewall de IP no nível do servidor.

Na página de visão geral do servidor

A página de visão geral do servidor é aberta. Ele mostra o nome do servidor totalmente qualificado (como mynewserver20170403.database.windows.net) e fornece opções para configuração adicional.

  1. Para definir uma regra no nível do servidor nesta página, selecione Rede no menu Configurações no lado esquerdo.

  2. Adicione uma regra na seção Regras de Firewall para adicionar o endereço IP do computador que você está usando e selecione Salvar. Uma regra de firewall de IP no nível do servidor é criada para seu endereço IP atual.

Usar Transact-SQL para gerenciar regras de firewall de IP

Exibição do catálogo ou procedimento armazenado Nível Descrição
sys.firewall_rules Servidor Exibe as regras de firewall de IP atuais no nível de servidor
sp_set_firewall_rule Servidor Cria ou atualiza as regras de firewall de IP no nível de servidor
sp_delete_firewall_rule Servidor Remove as regras de firewall de IP no nível de servidor
sys.database_firewall_rules Banco de dados Exibe as regras de firewall de IP atuais no nível de banco de dados
sp_set_database_firewall_rule Banco de dados Cria ou atualiza as regras de firewall de IP no nível de banco de dados
sp_delete_database_firewall_rule Bancos de dados Remove as regras de firewall de IP no nível de banco de dados

O exemplo a seguir analisa as regras existentes, habilita um intervalo de endereços IP no servidor Contoso e exclui uma regra de firewall de IP:

SELECT * FROM sys.firewall_rules ORDER BY name;

Em seguida, adicione uma regra de firewall de IP no nível do servidor.

EXECUTE sp_set_firewall_rule @name = N'ContosoFirewallRule',
   @start_ip_address = '192.168.1.1', @end_ip_address = '192.168.1.10'

Para excluir uma regra de firewall de IP no nível do servidor, execute o procedimento armazenado sp_delete_firewall_rule . O exemplo a seguir exclui a regra ContosoFirewallRule:

EXECUTE sp_delete_firewall_rule @name = N'ContosoFirewallRule'

Usar o PowerShell para gerenciar regras de firewall de IP de nível de servidor

Observação

Este artigo usa o módulo Azure Az PowerShell, que é o módulo recomendado do PowerShell para interagir com Azure. Para começar a usar o módulo do Az PowerShell, consulte Instalar Azure PowerShell. Para saber como migrar para o módulo do Az PowerShell, consulte Migrate Azure PowerShell do AzureRM para o Az.

Importante

O módulo Azure Resource Manager do PowerShell (AzureRM) foi preterido em 29 de fevereiro de 2024. Todo o desenvolvimento futuro deve usar o módulo Az.Sql. Os usuários são aconselhados a migrar do AzureRM para o módulo do Az PowerShell para garantir o suporte e as atualizações contínuas. O módulo AzureRM não é mais mantido ou tem suporte. Os argumentos para os comandos no módulo do Az PowerShell e nos módulos do AzureRM são substancialmente idênticos. Para obter mais informações sobre sua compatibilidade, consulte Apresentando o novo módulo do Az PowerShell.

Cmdlet Nível Descrição
Get-AzSqlServerFirewallRule Servidor Retorna as regras de firewall atuais no nível de servidor
New-AzSqlServerFirewallRule Servidor Cria as regras de firewall no nível de servidor
Set-AzSqlServerFirewallRule Servidor Atualiza as propriedades de uma regra de firewall existente no nível de servidor
Remove-AzSqlServerFirewallRule Servidor Remove as regras de firewall no nível de servidor

O seguinte exemplo usa o PowerShell para definir uma regra de firewall de IP no nível de servidor:

New-AzSqlServerFirewallRule -ResourceGroupName "myResourceGroup" `
    -ServerName $servername `
    -FirewallRuleName "ContosoIPRange" -StartIpAddress "192.168.1.0" -EndIpAddress "192.168.1.255"

Dica

Para $servername, especifique o nome do servidor e não o nome DNS totalmente qualificado (por exemplo, especifique mysqldbserver em vez de mysqldbserver.database.windows.net).

Para obter exemplos do PowerShell no contexto de um início rápido, consulte Azure PowerShell exemplos para Azure SQL Database e Use o PowerShell para criar um banco de dados individual e configurar uma regra de firewall no nível do servidor.

Usar a CLI para gerenciar regras de firewall de IP de nível de servidor

Cmdlet Nível Descrição
az sql server firewall-rule create Servidor Cria uma regra de firewall de IP do servidor
O comando az sql server firewall-rule list lista as regras de firewall do servidor SQL. Servidor Lista as regras de firewall de IP em um servidor
az sql server firewall-rule show (comando para exibir regras de firewall do servidor SQL) Servidor Mostra os detalhes de uma regra de firewall de IP
az sql server firewall-rule update - comando para atualizar regra de firewall no servidor SQL Servidor Atualiza uma regra de firewall de IP
az sql server firewall-rule delete (comando para deletar uma regra de firewall do servidor SQL no Azure) Servidor Exclui uma regra de firewall de IP

O seguinte exemplo usa a CLI para definir uma regra de firewall de IP no nível 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

Dica

Para $servername, especifique o nome do servidor e não o nome DNS totalmente qualificado. Por exemplo, use mysqldbserver ao invés de mysqldbserver.database.windows.net.

Para obter um exemplo da CLI no contexto de um início rápido, consulte Azure CLI exemplos para Azure SQL Database e Criar um único banco de dados e configurar uma regra de firewall usando o Azure CLI.

Para Azure Synapse Analytics, consulte os seguintes exemplos:

Cmdlet Nível Descrição
az synapse workspace criar regra de firewall Servidor Criar uma regra de firewall
az synapse workspace firewall-rule delete Servidor Excluir uma regra de firewall
az synapse workspace firewall-rule list Servidor Listar todas as regras de firewall
az synapse workspace firewall-rule show Servidor Obter uma regra de firewall
az synapse workspace firewall-rule update Servidor Atualizar uma regra de firewall
az synapse workspace firewall-rule wait Servidor Colocar a CLI em estado de espera até que uma condição da regra de firewall seja atendida

O exemplo a seguir usa a CLI para definir uma regra de firewall de IP no nível do servidor em 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

Use a API REST para gerenciar regras de firewall de IP de nível de servidor

API Nível Descrição
Listar regras de firewall Servidor Exibe as regras de firewall de IP atuais no nível de servidor
Criar ou atualizar regras de firewall Servidor Cria ou atualiza as regras de firewall de IP no nível de servidor
Excluir regras de firewall Servidor Remove as regras de firewall de IP no nível de servidor
Obter regras de firewall Servidor Obtém regras de firewall de IP no nível de servidor

Noções básicas sobre a latência das atualizações de firewall

O modelo de autenticação do servidor tem uma latência de 5 minutos para todas as alterações nas configurações de segurança, a menos que o banco de dados esteja contido e sem um parceiro de failover. As alterações feitas em bancos de dados contidos sem um parceiro de failover são instantâneas. Para bancos de dados contidos com um parceiro de failover, cada atualização de segurança é instantânea no banco de dados primário, mas o banco de dados secundário pode levar até 5 minutos para refletir as alterações.

A tabela a seguir descreve a latência das alterações de configurações de segurança com base no tipo de banco de dados e na configuração de failover:

Modelo de autenticação Failover configurado Latência para alterações de configurações de segurança Instâncias latentes
Autenticação de servidor Yes 5 minutos todos os bancos de dados
Autenticação de servidor Não 5 minutos todos os bancos de dados
Banco de dados contido Yes 5 minutos o banco de dados secundário
Banco de dados contido Não nenhum nenhum

Atualizando manualmente as regras de firewall

Se você precisar ver as regras de firewall atualizadas mais rapidamente do que a latência de 5 minutos, você poderá atualizar manualmente as regras de firewall. Faça logon na instância de banco de dados que precisa de suas regras atualizadas e execute DBCC FLUSHAUTHCACHE. Isso fará com que a instância do banco de dados libere o cache local e atualize as regras de firewall.

DBCC FLUSHAUTHCACHE[;]

Solucionar problemas do firewall do banco de dados

Considere os pontos a seguir quando o acesso ao banco de dados Azure SQL não se comportar como você espera.

  • Configuração do firewall local:

    Antes que seu computador possa acessar Azure SQL Database, talvez seja necessário criar uma exceção de firewall no computador para a porta TCP 1433. Para fazer conexões dentro do limite de nuvem Azure, talvez seja necessário abrir portas adicionais. Para obter mais informações, consulte a seção "Banco de Dados SQL: Externo versus interno" de Portas além da 1433 para ADO.NET 4.5.

  • Tradução de endereço de rede:

    Devido à NAT (conversão de endereços de rede), o endereço IP usado pelo computador para se conectar ao Azure SQL Database pode ser diferente do endereço IP nas configurações de IP do computador. Para exibir o endereço IP que seu computador está usando para se conectar ao Azure:

    1. Entre no portal.
    2. Vá para a guia Configurar no servidor que hospeda o banco de dados.
    3. O Endereço IP do Cliente Atual é exibido na seção Endereços IP Permitidos . Selecione Adicionar para Endereços IP Permitidos para permitir que este computador acesse o servidor.
  • As alterações na lista de permissões ainda não entraram em vigor:

    Pode haver um atraso de até cinco minutos para que as alterações na configuração de firewall do Azure SQL Database entrem em vigor.

  • O logon não está autorizado ou uma senha incorreta foi usada:

    Se um logon não tiver permissões no servidor ou a senha estiver incorreta, a conexão com o servidor será negada. A criação de uma configuração de firewall só oferece aos clientes a oportunidade de tentar se conectar ao servidor. O cliente ainda deve fornecer as credenciais de segurança necessárias. Para obter mais informações sobre como preparar logons, consulte Autorizar o acesso ao banco de dados para Banco de Dados SQL, SQL Managed Instance e Azure Synapse Analytics.

  • Endereço IP dinâmico:

    Se você tiver uma conexão à Internet que usa endereçamento IP dinâmico e estiver com problemas para acessar o firewall, tente uma das seguintes soluções:

    • Pergunte ao provedor de serviços de Internet o intervalo de endereços IP atribuído aos computadores cliente que acessam o servidor. Adicione esse intervalo de endereços IP como uma regra de firewall de IP.
    • Obtenha endereçamento IP estático para os computadores cliente. Adicione os endereços IP como regras de firewall de IP.