Partilhar via


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

Aplica-se a:Banco de Dados SQL do Azure do 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, do Banco de Dados SQL é usado para se referir ao Banco de Dados SQL e ao Azure Synapse Analytics. Este artigo não se aplicaInstâ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.

Observação

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

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.

Diagrama de configuração do firewall

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 IP no nível do servidor

Essas regras permitem que os clientes acessem todo o seu servidor, ou seja, todos os bancos de dados gerenciados 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 256 para um servidor. Se você tiver a configuração Permitir que os Serviços e recursos do Azure acessem esse servidor habilitada, isso contará como uma única regra de 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.

Observação

O número máximo de regras de firewall IP no nível do servidor é limitado a 256 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.)

Observação

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 Sem.

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

As regras de firewall IP no nível de banco de dados permitem que os clientes acessem determinados bancos de dados (seguros). 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.

  • Você só pode criar e gerenciar regras de firewall IP no nível de banco de dados para bancos de dados mestre e de usuário usando instruções Transact-SQL e somente depois de configurar o primeiro firewall no nível de servidor.
  • Se você especificar um intervalo de endereços IP na regra de firewall IP no nível de banco de dados que esteja fora do intervalo na regra de firewall IP no nível do servidor, somente os clientes que tiverem endereços IP no intervalo no nível do banco de dados poderão acessar o banco 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 sua 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.

Observação

Para obter informações sobre bancos de dados portáteis no contexto da continuidade de negócios, consulte Requisitos de autenticação para recuperação de desastres.

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

Os utilizadores de uma base de dados devem ser totalmente isolados de outra base 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 utilizadores nos endereços IP precisam de ter acesso a todas as bases de dados?

Se sim, use regras de firewall IP no nível do servidor para reduzir o número de vezes que você precisa 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 permissão CONTROL DATABASE ao nível de banco de dados para configurar regras de firewall IP ao nível de 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á.

Observação

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 no painel do portal do Azure alternando a 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 vista master base de dados sys.firewall_rules. 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 gerenciar regras de firewall IP para o SQL Server do Azure, você precisará ser:

  • na função de Colaborador do SQL Server
  • na função SQL Security Manager
  • o proprietário do recurso que contém o SQL Server do Azure

Criar e gerenciar regras de firewall IP

Você cria a primeira configuração de firewall no nível de servidor usando o portal do Azure ou programaticamente usando o PowerShell do Azure, a CLI do Azureou 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 IP no nível do 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 Auditoria de Banco de Dados para auditar alterações de firewall ao nível do servidor e 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.

Dica

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 de IP a nível do servidor a partir da 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.

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

    Abre-se a página Networking do servidor.

  2. Adicione uma regra na secção Regras do Firewall para incluir 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.

    Captura de tela mostra a página Rede onde você pode definir as regras de firewall IP no nível do servidor.

Da 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 de nível de servidor a partir desta página, selecione Rede a partir do menu de Configurações no lado esquerdo.

  2. Adicione uma regra na secção de regras do 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.

Use Transact-SQL para gerenciar regras de firewall IP

Vista de catálogo ou procedimento armazenado Nível Descrição
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 Contosoe 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 sp_delete_firewall_rule procedimento armazenado. 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

Observação

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

Importante

O módulo Az substitui AzureRM. Todo o desenvolvimento futuro é para o módulo Az.Sql.

Cmdlet Nível Descrição
Get-AzSqlServerFirewallRule Servidor Retorna as regras atuais de firewall no nível de servidor
New-AzSqlServerFirewallRule Servidor Cria uma nova regra de firewall no nível de servidor
Set-AzSqlServerFirewallRule Servidor Atualiza as propriedades de uma regra de firewall existente no nível do servidor
Remove-AzSqlServerFirewallRule Servidor Remove regras de firewall no 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"

Dica

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 Nível Descrição
regra de firewall do az SQL Server criar 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
regra de firewall do AZ SQL Server mostrar 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
de exclusão de regra de firewall do AZ SQL Server 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

Dica

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 BD - Azure CLI e Criar uma base de dados única e configurar uma regra de firewall de IP ao nível do servidor usando o Azure CLI.

Para o Azure Synapse Analytics, consulte os seguintes exemplos:

Cmdlet Nível Descrição
criar regra de firewall do espaço de trabalho az synapse Servidor Criar uma regra de firewall
az synapse workspace firewall-rule excluir Servidor Excluir uma regra de firewall
lista de regras de firewall do espaço de trabalho AZ Synapse Servidor Listar todas as regras de firewall
regra de firewall do espaço de trabalho az synapse mostrar 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 Nível Descrição
Listar regras do 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 as regras de firewall IP a nível de servidor

Solucionar problemas do firewall do banco 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 exibir o endereço IP que seu computador está usando para se conectar ao Azure:

    1. Inicie sessão no portal.
    2. Vá para o separador Configurar no servidor que hospeda o seu banco de dados.
    3. O Endereço IP do Cliente Atual é exibido na secçã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. A criação de uma configuração de firewall oferece aos clientes uma oportunidade para tentar conectar-se 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:

    • Peça ao seu fornecedor de serviços de Internet o intervalo de endereços IP atribuído aos computadores clientes 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