Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Applies to:Azure SQL Database
Azure 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.
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
mastercomo 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
mastere 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:
- na função SQL Server Colaborador
- na função gerenciador de segurança do SQL
- o proprietário do recurso que contém o SQL Server do Azure
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.
Dica
Para obter um tutorial, consulte Quickstart: Criar um banco de dados único – Azure SQL Database.
Na página de visão geral do banco de dados
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.
A página Rede do servidor é aberta.
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.
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.
Para definir uma regra no nível do servidor nesta página, selecione Rede no menu Configurações no lado esquerdo.
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:
- Entre no portal.
- Vá para a guia Configurar no servidor que hospeda o banco de dados.
- 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.
Conteúdo relacionado
- Intervalos de IP do datacenter Microsoft Azure
- criando um banco de dados individual em Azure SQL Database
- Exemplos de código de início rápido para cliente no Azure SQL Database
- Portas além de 1433 para ADO.NET 4.5
- Uma visão geral dos recursos de segurança do Azure SQL Database e do SQL Managed Instance