Regras de firewall do Banco de Dados SQL do Azure e do Azure Synapse IP

Aplica-se a:Banco de DadosSQL do Azure Azure Synapse Analytics

Quando você cria um novo servidor no Banco de Dados SQL do Azure ou no Azure Synapse Analytics chamado mysqlserver, por exemplo, um firewall no nível de servidor bloqueia todo o acesso ao ponto de extremidade público do servidor (que pode ser acessado em mysqlserver.database.windows.net). Para simplificar, o Banco de Dados SQL é usado para fazer referência ao Banco de Dados SQL e ao Azure Synapse Analytics. Este artigo não se aplica à Instância Gerenciada SQL do Azure. Para obter informações sobre a configuração de rede, consulte Conectar seu aplicativo à Instância Gerenciada SQL do Azure.

Nota

Microsoft Entra ID é o novo nome para o Azure Ative Directory (Azure AD). Estamos atualizando a documentação neste momento.

Como funciona o firewall

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

Firewall configuration diagram

Importante

O Azure Synapse suporta apenas regras de firewall IP no nível do servidor. Ele não suporta regras de firewall IP no nível de banco de dados.

Regras de firewall de IP ao nível do servidor

Estas regras permitem que os clientes acedam a todo o servidor, ou seja, a todas as bases de dados geridas pelo servidor. As regras são armazenadas no banco de dados mestre . O número máximo de regras de firewall IP no nível do servidor é limitado a 128 para um servidor. Se tiver a definição Permitir que os Serviços e recursos do Azure acedam a este servidor ativada, tal contará como uma única regra da firewall para o servidor.

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

Nota

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

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

Nota

Por padrão, durante a criação de um novo servidor SQL lógico a partir do portal do Azure, a configuração Permitir que os Serviços e recursos do Azure acessem esse servidor é definida como Não.

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

As regras de firewall de IP ao nível da base de dados permitem que os clientes acedam a determinadas bases de dados (seguras). Você cria as regras para cada banco de dados (incluindo o banco de dados mestre ) e elas são armazenadas no banco de dados individual.

  • Só é possível criar e gerir regras de firewall IP ao nível da base de dados para bases de dados mestras e de utilizador com instruções Transact-SQL e apenas depois de configurar a primeira firewall ao nível do servidor.
  • Se especificar um intervalo de endereços IP na regra de firewall de IP ao nível da base de dados que esteja fora do intervalo na regra de firewall de IP ao nível do servidor, só os clientes que tiverem endereços IP no intervalo ao nível da base de dados podem aceder à base de dados.
  • O valor padrão é até 256 regras de firewall IP no nível de banco de dados para um banco de dados. Para obter mais informações sobre como configurar regras de firewall IP no nível de banco de dados, consulte o exemplo mais adiante neste artigo e consulte sp_set_database_firewall_rule (Banco de Dados SQL do Azure).

Recomendações sobre como definir regras de firewall

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

Nota

Para obter informações sobre bases de dados portáteis no contexto de continuidade do negócio, veja Authentication requirements for disa ster recovery (Requisitos de autenticação para a recuperação após desastre).

Regras de firewall de IP ao nível de servidor vs. ao nível da base de dados

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

Se sim, use regras de firewall IP no nível de banco de dados para conceder acesso. Esse método evita o uso de regras de firewall IP no nível do servidor, que permitem o acesso através do firewall a todos os bancos de dados. Isso reduziria a profundidade de suas defesas.

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

Em caso afirmativo, utilize regras de firewall IP ao nível do servidor para reduzir o número de vezes que tem de configurar regras de firewall IP.

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

Em caso afirmativo, você deve usar regras de firewall IP no nível do servidor. As regras de firewall IP no nível de banco de dados só podem ser configuradas por meio do Transact-SQL.

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

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

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

Nesse cenário, as práticas recomendadas são determinadas pelas suas necessidades e ambiente. As regras de firewall IP no nível do servidor podem ser mais fáceis de configurar, mas o script pode configurar regras no nível do banco de dados. E mesmo se você usar regras de firewall IP no nível do servidor, talvez seja necessário auditar as regras de firewall 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 IP no nível do banco de dados.

Posso usar uma combinação de regras de firewall 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 IP no nível do servidor. Outros usuários, como usuários de um aplicativo de banco de dados, podem precisar de regras de firewall IP no nível de banco de dados.

Ligações à Internet

Quando um computador tenta se conectar ao servidor pela Internet, o firewall primeiro verifica o endereço IP de origem da solicitação em relação às regras de firewall IP no nível de banco de dados para o banco de dados solicitado pela conexão.

  • Se o endereço estiver dentro de um intervalo especificado nas regras de firewall IP no nível de 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 IP no nível do banco de dados, o firewall verificará as regras de firewall IP no nível do servidor. Se o endereço estiver dentro de um intervalo que esteja nas regras de firewall IP no nível do servidor, a conexão será concedida. As regras de firewall IP no nível do servidor aplicam-se a todos os bancos de dados gerenciados pelo servidor.
  • Se o endereço não estiver dentro de um intervalo que esteja em qualquer uma das regras de firewall IP no nível do banco de dados ou no nível do servidor, a solicitação de conexão falhará.

Nota

Para aceder à Base de Dados SQL do Azure a partir do seu computador local, certifique-se de que a 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 dentro do Azure se conectem ao seu servidor SQL, as conexões do Azure devem ser habilitadas. Para habilitar conexões do Azure, deve haver uma regra de firewall com endereços IP iniciais e finais definidos como 0.0.0.0. Esta regra recomendada só é aplicável à Base de Dados SQL do Azure.

Quando um aplicativo do Azure tenta se conectar ao servidor, o firewall verifica se as conexões do Azure são permitidas verificando se essa regra de firewall existe. Isso pode ser ativado diretamente da folha do portal do Azure alternando a opção Permitir que os Serviços e recursos do Azure acessem esse 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 sua master base de dados sys.firewall_rules vista. Use o PowerShell ou a CLI do Azure para criar uma regra de firewall com endereços IP iniciais e finais definidos como 0.0.0.0 se você não estiver usando o portal.

Importante

Esta opção configura o firewall para permitir todas as conexões do Azure, incluindo conexões de assinaturas de outros clientes. Se selecionar esta opção, certifique-se de que as suas permissões de início de sessão e de utilizador limitam o acesso apenas a utilizadores autorizados.

Permissões

Para poder criar e gerir regras de firewall de IP para o Azure SQL Server, terá de:

Criar e gerir regras de firewall de IP

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

Importante

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

Para melhorar o desempenho, as regras de firewall de IP ao nível do servidor são colocadas em cache temporariamente ao nível da base de dados. Para atualizar a cache, veja DBCC FLUSHAUTHCACHE.

Gorjeta

Você pode usar a Auditoria de Banco de Dados para auditar alterações de firewall no nível do servidor e no nível do banco de dados.

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

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

Gorjeta

Para obter um tutorial, consulte Criar um banco de dados usando o portal do Azure.

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

  1. Para definir uma regra de firewall 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 of the set server firewall setting in the Azure portal.

    A página Rede do servidor é aberta.

  2. Adicione uma regra na secção Regras de firewall para adicionar o endereço IP do computador que está a utilizar e, em seguida, selecione Guardar. Uma regra de firewall IP no nível do servidor é criada para o seu endereço IP atual.

    Screenshot shows the Networking page where you can set the server-level IP firewall rules.

Na página de visão geral do servidor

A página de visão geral do seu 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 do lado esquerdo.

  2. Adicione uma regra na secção Regras de firewall para adicionar o endereço IP do computador que está a utilizar e, em seguida, selecione Guardar. Uma regra de firewall IP no nível do servidor é criada para o seu endereço IP atual.

Usar o Transact-SQL para gerenciar regras de firewall IP

Vista de catálogo ou procedimento armazenado Level Description
sys.firewall_rules Servidor Exibe as regras atuais de firewall IP no nível do servidor
sp_set_firewall_rule Servidor Cria ou atualiza regras de firewall IP no nível do servidor
sp_delete_firewall_rule Servidor Remove regras de firewall IP no nível do servidor
sys.database_firewall_rules Base de dados Exibe as regras atuais de firewall IP no nível de banco de dados
sp_set_database_firewall_rule Base de dados Cria ou atualiza as regras de firewall IP no nível de banco de dados
sp_delete_database_firewall_rule Bases de Dados Remove regras de firewall 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 IP:

SELECT * FROM sys.firewall_rules ORDER BY name;

Em seguida, adicione uma regra de firewall 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 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 IP no nível do servidor

Nota

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

Importante

O módulo PowerShell Azure Resource Manager ainda é suportado pelo Banco de Dados SQL do Azure, mas todo o desenvolvimento agora é para o módulo Az.Sql. Para esses cmdlets, consulte AzureRM.Sql. Os argumentos para os comandos nos módulos Az e AzureRm são substancialmente idênticos.

Cmdlet Level Description
Get-AzSqlServerFirewallRule Servidor Devolve as regras de firewall ao nível do servidor atuais
New-AzSqlServerFirewallRule Servidor Cria uma regra de firewall ao nível do servidor nova
Set-AzSqlServerFirewallRule Servidor Atualiza as propriedades de uma regra de firewall ao nível do servidor existente
Remove-AzSqlServerFirewallRule Servidor Remove as regras de firewall ao nível do servidor

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

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

Gorjeta

Por $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 Criar banco de dados - PowerShell e Criar um único banco de dados e configurar uma regra de firewall IP no nível do servidor usando o PowerShell.

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

Cmdlet Level Description
az sql server firewall-rule create Servidor Cria uma regra de firewall IP do servidor
Lista de regras de firewall do AZ SQL Server Servidor Lista as regras de firewall IP em um servidor
AZ SQL Server Firewall-rule show Servidor Mostra os detalhes de uma regra de firewall IP
Atualização da regra de firewall do AZ SQL Server Servidor Atualiza uma regra de firewall IP
AZ SQL Server Firewall-rule Excluir Servidor Exclui uma regra de firewall IP

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

Gorjeta

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

Para obter um exemplo de CLI no contexto de um início rápido, consulte Criar banco de dados - CLI do Azure e Criar um único banco de dados e configurar uma regra de firewall IP no nível do servidor usando a CLI do Azure.

Para o Azure Synapse Analytics, consulte os seguintes exemplos:

Cmdlet Level Description
az synapse workspace firewall-rule create Servidor Criar uma regra de firewall
az synapse workspace firewall-rule delete Servidor Eliminar uma regra de firewall
lista de regras de firewall do espaço de trabalho az synapse Servidor Listar todas as regras de firewall
az synapse workspace firewall-rule show Servidor Obter uma regra de firewall
Atualização da regra de firewall do espaço de trabalho AZ Synapse Servidor Atualizar uma regra de firewall
az synapse workspace firewall-rule wait Servidor Coloque a CLI em um estado de espera até que uma condição de uma regra de firewall seja atendida

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

Usar uma API REST para gerenciar regras de firewall IP no nível do servidor

API Level Description
Listar regras de firewall Servidor Exibe as regras atuais de firewall IP no nível do servidor
Criar ou atualizar regras de firewall Servidor Cria ou atualiza regras de firewall IP no nível do servidor
Excluir regras de firewall Servidor Remove regras de firewall IP no nível do servidor
Obter regras de firewall Servidor Obtém regras de firewall IP no nível do servidor

Resolver problemas da firewall da base de dados

Considere os seguintes pontos quando o acesso ao Banco de Dados SQL do Azure não se comportar como esperado.

  • Configuração de firewall local:

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

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

    Devido à conversão de endereços de rede (NAT), o endereço IP usado pelo computador para se conectar ao Banco de Dados SQL do Azure pode ser diferente do endereço IP nas definições de configuração de IP do computador. Para ver o endereço IP utilizado pelo computador para se ligar ao Azure:

    1. Inicie sessão no portal.
    2. Aceda ao separador Configurar no servidor anfitrião da base 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 à 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 do firewall do Banco de Dados SQL do Azure entrem em vigor.

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

    Se um login não tiver permissões no servidor ou se a senha estiver incorreta, a conexão com o servidor será negada. Criar uma configuração de firewall apenas dá aos clientes a oportunidade de tentar se conectar ao seu servidor. O cliente ainda deve fornecer as credenciais de segurança necessárias. Para obter mais informações sobre como preparar logons, consulte Controlando e concedendo acesso ao banco de dados.

  • Endereço IP dinâmico:

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

    • Pergunte ao fornecedor de serviços de Internet qual é o intervalo de endereços IP que está atribuído aos computadores cliente que acedem ao servidor. Adicione esse intervalo de endereços IP como uma regra de firewall IP.
    • Obtenha endereçamento IP estático em vez disso para os computadores clientes. Adicione os endereços IP como regras de firewall IP.

Próximos passos

  • Confirme se seu ambiente de rede corporativa permite a comunicação de entrada dos intervalos de endereços IP de computação (incluindo intervalos SQL) usados pelos datacenters do Azure. Talvez seja necessário adicionar esses endereços IP à lista de permissões. Consulte Intervalos de IP do datacenter do Microsoft Azure.
  • Veja nosso guia de início rápido sobre como criar um único banco de dados no Banco de Dados SQL do Azure.
  • Para obter ajuda com a conexão a um banco de dados no Banco de Dados SQL do Azure a partir de aplicativos de código aberto ou de terceiros, consulte Exemplos de código de início rápido do cliente para o Banco de Dados SQL do Azure.
  • Para obter informações sobre portas adicionais que talvez seja necessário abrir, consulte a seção "Banco de dados SQL: fora vs dentro" de Portas além de 1433 para ADO.NET 4.5 e Banco de dados SQL
  • Para obter uma visão geral da segurança do Banco de Dados SQL do Azure, consulte Protegendo seu banco de dados.