Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a: Azure SQL Database
Azure Synapse Analytics
Quando crias um novo servidor em Azure SQL Database ou Azure Synapse Analytics chamado mysqlserver, por exemplo, um firewall ao nível do servidor bloqueia todo o acesso ao endpoint público do servidor (que é acessível em mysqlserver.database.windows.net). Para simplificar, SQL Database é usado para se referir tanto à Base de Dados SQL como à Azure Synapse Analytics. Este artigo não se aplica a Azure SQL Managed Instance. Para informações sobre configuração de rede, consulte Ligue a sua aplicação ao Azure SQL Managed Instance.
Observação
Microsoft Entra ID era anteriormente conhecido como Azure Active Directory (Azure d.C.).
Como funciona o firewall
As tentativas de ligação da internet e do Azure devem passar pelo firewall antes de chegarem ao seu servidor ou base de dados, como mostra o diagrama seguinte.
Importante
O Azure Synapse só suporta regras de firewall IP ao 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 na base de master dados. O número máximo de regras de firewall IP no nível do servidor é limitado a 256 para um servidor. Se tiver ativada a definição Permitir Azure Serviços e recursos para aceder a este servidor, isto conta como uma única regra de firewall para o servidor.
Pode configurar regras de firewall IP ao nível do servidor usando o portal Azure, PowerShell ou instruções Transact-SQL.
Observação
O número máximo de regras de firewall IP ao nível do servidor está limitado a 256 quando configurado 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, deve ligar-se à base de dados
mastercomo o principal login ao nível do servidor ou como administrador Microsoft Entra. (Uma regra de firewall IP a nível de servidor deve primeiro ser criada por um utilizador que tenha permissões ao nível do Azure.)
Observação
Por defeito, durante a criação de um novo servidor SQL lógico a partir do portal Azure, a definição Permitir que os Serviços e recursos Azure acedam a este servidor está definida para No.
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). Crias as regras para cada base de dados (incluindo a master base de dados), e elas são armazenadas na base de dados individual.
- Só pode criar e gerir regras de firewall IP ao nível da base de dados para
mastere bases de dados de utilizadores usando instruções Transact-SQL e só depois de configurar o primeiro firewall ao nível do 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 mais informações sobre a configuração de regras de firewall IP ao nível da base de dados, veja o exemplo mais adiante neste artigo e veja sp_set_database_firewall_rule (Azure SQL Database).
Recomendações sobre como definir regras de firewall
Use regras de firewall IP ao nível da base 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 informações sobre bases de dados portáteis no contexto da continuidade de negócios, consulte Configurar e gerir a segurança do Azure SQL Database para restauro geográfico ou failover.
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 estar totalmente isolados de outra base de dados?
Se sim, use regras de firewall IP ao nível da base 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 acesso a todas as bases de dados?
Se sim, usa regras de firewall IP ao nível do servidor para reduzir o número de vezes que tens de configurar regras de firewall IP.
A pessoa ou equipa que configura as regras do firewall IP só tem acesso através do portal Azure, 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 ao nível da base de dados só podem ser configuradas através do Transact-SQL.
A pessoa ou equipa que configura as regras do firewall IP está proibida de ter permissão de alto nível ao nível da base de dados?
Em caso afirmativo, use regras de firewall IP no nível do servidor. Precisa de pelo menos permissão CONTROL DATABASE ao nível da base de dados para configurar regras de firewall IP ao nível da base de dados através de Transact-SQL.
A pessoa ou equipa que configura ou audita as regras do firewall IP gere centralmente as regras do firewall IP para muitas (talvez centenas) de bases 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 que use regras de firewall IP ao nível do servidor, pode ser necessário auditar regras de firewall IP ao nível da base de dados para ver se utilizadores com permissão CONTROL na base de dados criam regras de firewall IP ao nível da base de dados.
Posso usar uma combinação de regras de firewall IP ao nível do servidor e da base 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 ao Azure SQL Database a partir do seu computador local, certifique-se de que o firewall da sua rede e do computador local permite a comunicação de saída na porta TCP 1433.
Ligações a partir de dentro do Azure
Para permitir que aplicações alojadas dentro do Azure se liguem ao seu servidor SQL, precisa de ativar as ligações ao Azure. Para isso, crie uma regra de firewall com endereços IP iniciais e finais definidos para 0.0.0.0. Esta regra aplica-se apenas ao Azure SQL Database.
Quando uma aplicação do Azure tenta ligar-se ao servidor, o firewall verifica se as ligações ao Azure são permitidas, verificando a existência desta regra do firewall. Isto pode ser ativado diretamente a partir do painel do portal Azure ao mudar a opção Permitir que os serviços e recursos do Azure acedam a este servidor para ON nas definições de Firewalls e redes virtuais. Mudar a definiçã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 mastersys.firewall_rules da sua base de dados. Usa o PowerShell ou a Azure CLI para criar uma regra de firewall com endereços IP de início e fim definidos para 0.0.0.0 se não estiveres a usar o portal.
Advertência
Ativar esta opção permite ligações a partir de todos os serviços Azure, incluindo serviços que estão a correr em assinaturas de outros clientes. Esta regra não restringe o acesso à sua subscrição ou grupo de recursos — qualquer recurso Azure com ligação externa ao Azure SQL Database pode ligar-se. Ao ativar esta definição, certifique-se de que o seu login e permissões de utilizador limitam o acesso apenas a utilizadores autorizados.
Os seguintes serviços Azure utilizam frequentemente esta regra para se ligar ao 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 maior segurança, considere usar endpoints virtuais de serviço de rede ou endpoints privados em vez da regra AllowAllWindowsAzureIPS . Estas alternativas limitam a conectividade a sub-redes ou redes privadas específicas, em vez de permitir todos os endereços IP do Azure.
Permissões
Para criar e gerir regras de firewall IP para o Azure SQL Server, precisa de ter um dos seguintes papéis:
- no papel de SQL Server Colaborador
- no papel de Gestor de Segurança SQL
- o proprietário do recurso que contém o Azure SQL Server
Criar e gerenciar regras de firewall IP
Cria-se a primeira configuração de firewall ao nível do servidor usando o portal Azure ou programaticamente usando Azure PowerShell, Azure CLI, ou uma API Azure REST. Cria e gere regras adicionais de firewall IP ao nível do servidor usando estes métodos ou Transact-SQL.
Importante
As regras de firewall IP ao nível da base de dados só podem ser criadas e geridas utilizando 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 a cache, consulte DBCC FLUSHAUTHCACHE.
Dica
Pode usar Auditoria para Azure SQL Database e Azure Synapse Analytics para auditar alterações no firewall a nível de servidor e a nível de base de dados.
Use o portal Azure para gerir regras de firewall IP ao nível do servidor
Para definir uma regra de firewall IP a nível de servidor no portal Azure, vá à página de visão geral da sua base de dados ou do seu servidor.
Dica
Para um tutorial, veja Quickstart: Criar uma base de dados única - Azure SQL Database.
Na página de visão geral do banco de dados
Para definir uma regra de firewall IP a nível de servidor a partir da página de visão geral da base de dados, selecione Definir firewall de servidor na barra de ferramentas, como mostra a imagem seguinte.
A página de Rede do servidor abre-se.
Adiciona uma regra na secção de regras de firewall para adicionar o endereço IP do computador que estás a usar e depois seleciona Guardar. Uma regra de firewall IP no nível do servidor é criada para o seu endereço IP atual.
Da página de visão geral do servidor
A página de visão geral do seu servidor é aberta. Mostra o nome do servidor totalmente qualificado (como mynewserver20170403.database.windows.net) e fornece opções para configurações adicionais.
Para definir uma regra ao nível do servidor a partir desta página, selecione Rede no menu Definições do lado esquerdo.
Adiciona uma regra na secção de regras de firewall para adicionar o endereço IP do computador que estás a usar e depois seleciona Guardar. Uma regra de firewall IP no nível do servidor é criada para o seu endereço IP atual.
Use o Transact-SQL para gerir 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 seguinte revê as regras existentes, ativa uma variedade de endereços IP no servidor Contoso e elimina 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 eliminar uma regra de firewall IP ao nível do servidor, execute o procedimento sp_delete_firewall_rule armazenado. O exemplo seguinte elimina 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 utiliza o módulo PowerShell do Azure Az, que é o módulo PowerShell recomendado para interagir com o Azure. Para começar com o módulo Az PowerShell, veja Install Azure PowerShell. Para saber como migrar para o módulo Az PowerShell, veja Migrar Azure PowerShell do AzureRM para o Az.
Importante
O módulo PowerShell Azure Resource Manager (AzureRM) foi obsoleto a 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 Az PowerShell para garantir suporte e atualizações contínuos. O módulo AzureRM não é mais mantido ou suportado. Os argumentos para os comandos no módulo Az PowerShell e nos módulos 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 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
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 exemplos de PowerShell no contexto de um "quickstart", veja exemplos do Azure PowerShell para Azure SQL Database e use o PowerShell para criar uma base de dados única e configurar uma regra de firewall ao nível do servidor.
Usar a CLI para gerenciar regras de firewall IP no nível do servidor
| Cmdlet | Nível | Descrição |
|---|---|---|
| az sql server criar regra de firewall | 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 |
| az sql server firewall-rule eliminar | 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 um exemplo de CLI no contexto de um quickstart, veja Azure CLI exemplos para Azure SQL Database e Crie uma base de dados única e configure uma regra de firewall usando o Azure CLI.
Para Azure Synapse Analytics, consulte os seguintes exemplos:
| Cmdlet | Nível | Descrição |
|---|---|---|
| az synapse workspace firewall-rule create | 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 | Coloque a CLI em um estado de espera até que uma condição de uma regra de firewall seja atendida |
O exemplo seguinte usa CLI para definir uma regra de firewall IP a nível de 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 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 |
| Obtenha regras de firewall | Servidor | Obtém as regras de firewall IP a 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 bases de dados contidas com um parceiro de failover, cada atualização de segurança é imediata na base de dados primária, podendo levar até 5 minutos para o banco de dados secundário refletir as alterações.
A tabela a seguir descreve a latência das alterações nas 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 nas configurações de segurança | Instâncias latentes |
|---|---|---|---|
| Autenticação do servidor | Yes | 5 minutos | Todas as bases de dados |
| Autenticação do servidor | Não | 5 minutos | Todas as bases de dados |
| Base de dados encapsulada | Yes | 5 minutos | a base de dados secundária |
| Base de dados encapsulada | Não | nenhuma | nenhuma |
Atualizar manualmente as regras de firewall
Se precisar de ver as regras de firewall atualizadas mais rapidamente do que a latência de 5 minutos, pode atualizar manualmente as regras de firewall. Inicia sessão na instância da base de dados que precisa de atualizar as regras e executa o DBCC FLUSHAUTHCACHE. Isso fará com que a instância do banco de dados libere seu cache local e atualize as regras de firewall.
DBCC FLUSHAUTHCACHE[;]
Solucionar problemas do firewall do banco de dados
Considere os seguintes pontos quando o acesso ao Azure SQL Database não se comporta como espera.
Configuração local do firewall:
Antes de o seu computador poder aceder ao Azure SQL Database, pode ser necessário criar uma exceção de firewall no seu computador para a porta TCP 1433. Para fazer ligações dentro do limite da nuvem do Azure, pode ser necessário abrir portas adicionais. Para mais informações, consulte a secção "SQL Database: Outside vs inside" do Ports beyond 1433 for ADO.NET 4.5.
Tradução de endereços de rede:
Devido à tradução de endereços de rede (NAT), o endereço IP que o seu computador usa para se ligar ao Azure SQL Database pode ser diferente do endereço IP nas definições de configuração IP do seu computador. Para ver o endereço IP que o seu computador está a usar para se ligar ao Azure:
- Inicie sessão no portal.
- Aceda ao separador Configurar no servidor anfitrião da base de dados.
- O Endereço IP do Cliente Atual é apresentado na secção de Endereços IP Permitidos. Selecione Adicionar para Endereços IP Permitidos para permitir que este computador aceda ao servidor.
As alterações à lista de autorizações ainda não entraram em vigor:
Pode haver até cinco minutos de atraso para as alterações à configuração do firewall do Azure SQL Database entrarem em vigor.
O login não é autorizado, ou foi usada uma palavra-passe incorreta:
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 só dá aos clientes a oportunidade de tentarem ligar-se ao seu servidor. O cliente ainda deve fornecer as credenciais de segurança necessárias. Para mais informações sobre como configurar logins, consulte Autorizar o acesso aos seguintes serviços: base de dados SQL, SQL Managed Instance e Azure Synapse Analytics.
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.
Conteúdo relacionado
- Microsoft Azure intervalos de endereços IP do datacenter
- criar uma base de dados única em Azure SQL Database
- Código de inicialização rápida do cliente para exemplos de código do Azure SQL Database
- Portas para além de 1433 para ADO.NET 4.5
- Uma visão geral das capacidades de segurança Azure SQL Database e SQL Managed Instance