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.
Quando executa um servidor flexível Base de Dados do Azure para PostgreSQL, tem duas opções principais de rede: acesso privado (integração com rede virtual) e acesso público (endereços IP permitidos).
Com acesso público, acede ao servidor flexível Base de Dados do Azure para PostgreSQL através de um endpoint público. Por padrão, o firewall bloqueia todo o acesso ao servidor. Para especificar quais os hosts IP que podem aceder ao servidor, crie regras de firewall ao nível do servidor. As regras de firewall especificam intervalos de endereços IP públicos permitidos. O firewall concede acesso ao servidor com base no endereço IP de origem de cada solicitação. Com acesso privado, não existe um endpoint público disponível e apenas os hosts localizados na mesma rede podem aceder ao seu servidor flexível Base de Dados do Azure para PostgreSQL.
Crie regras de firewall usando o portal Azure ou usando comandos CLI do Azure. Tem de ser o proprietário da subscrição ou um contribuidor da subscrição.
Regras de firewall ao nível do servidor aplicam-se a todas as bases de dados no mesmo servidor flexível Base de Dados do Azure para PostgreSQL. As regras não afetam o acesso ao site do portal do Azure.
O diagrama a seguir mostra como as tentativas de conexão da Internet e do Azure devem passar pelo firewall antes de poderem acessar o Banco de Dados do Azure para bancos de dados PostgreSQL:
Ligue-se a partir da Internet
Se o endereço IP de origem da solicitação estiver dentro de um dos intervalos especificados nas regras de firewall no nível do servidor, a conexão será concedida. Caso contrário, é rejeitado.
Por exemplo, se seu aplicativo se conectar a um driver JDBC (Java Database Connectivity) para o Banco de Dados do Azure para PostgreSQL, você poderá encontrar esse erro porque o firewall está bloqueando a conexão:
- java.util.concurrent.ExecutionException: java.lang.RuntimeException:
- org.postgresql.util.PSQLException: FATAL: nenhuma entrada pg_hba.conf para host "123.45.67.890", usuário "adminuser", banco de dados "postgresql", SSL
Observação
Para aceder ao servidor flexível Base de Dados do Azure para PostgreSQL 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 5432.
Conectar-se a partir do Azure
Encontre o endereço IP de saída de qualquer aplicação ou serviço e permita explicitamente o acesso a esses endereços IP ou intervalos individuais. Por exemplo, você pode encontrar o endereço IP de saída de um aplicativo do Serviço de Aplicativo do Azure ou usar um endereço IP público vinculado a uma máquina virtual.
Se um endereço IP de saída fixo não estiver disponível para seu serviço do Azure, considere habilitar conexões de todos os endereços IP para datacenters do Azure:
No portal do Azure, no painel Rede , marque a caixa de seleção Permitir acesso público de qualquer serviço do Azure no Azure a este servidor .
Selecione Guardar.
Importante
A opção Permitir acesso público de qualquer serviço do Azure no Azure a este servidor configura o firewall para permitir todas as conexões do Azure, incluindo conexões de assinaturas de outros clientes. Ao usar esta opção, certifique-se de que as permissões de início de sessão e de utilizador limitam o acesso apenas a utilizadores autorizados.
Gerenciar regras de firewall programaticamente
Além de usar o portal do Azure, você pode gerenciar regras de firewall programaticamente usando a CLI do Azure.
Na CLI do Azure, uma configuração de regra de firewall com um endereço inicial e final igual a 0.0.0.0 faz o equivalente à opção Permitir acesso público de qualquer serviço do Azure no Azure a este servidor no portal. Se as regras do firewall rejeitarem a tentativa de ligação, a aplicação não chega ao servidor flexível Base de Dados do Azure para PostgreSQL.
Solucionar problemas de firewall
Considere as seguintes possibilidades quando o acesso a um servidor flexível Base de Dados do Azure para PostgreSQL não se comporta como espera:
As alterações à lista de permissões ainda não estão em vigor: Alterações à configuração do firewall de um servidor flexível do Base de Dados do Azure para PostgreSQL podem demorar até cinco minutos.
O login não é autorizado, ou foi usada uma palavra-passe incorreta: Se um login não tiver permissões no servidor flexível Base de Dados do Azure para PostgreSQL ou a palavra-passe estiver incorreta, a ligação ao servidor é negada. Criar uma configuração de firewall só dá aos clientes a oportunidade de tentarem ligar-se ao seu servidor. Cada cliente ainda deve fornecer as credenciais de segurança necessárias.
Por exemplo, o seguinte erro pode aparecer se a autenticação falhar para um cliente JDBC:
java.util.concurrent.ExecutionException: java.lang.RuntimeException: org.postgresql.util.PSQLException: FATAL: falha na autenticação de senha para o usuário "yourusername"
O firewall não está permitindo endereços IP dinâmicos: Se você tiver uma conexão com a Internet com endereçamento IP dinâmico e estiver tendo problemas para passar pelo firewall, tente uma das seguintes soluções:
Peça ao seu fornecedor de serviços de internet (ISP) o intervalo de endereços IP atribuído aos seus computadores clientes que acedem ao servidor flexível Base de Dados do Azure para PostgreSQL. Em seguida, adicione o intervalo de endereços IP como uma regra de firewall.
Em vez disso, obtenha endereços IP estáticos para os computadores clientes e, em seguida, adicione os endereços IP estáticos como uma regra de firewall.
As regras de firewall não estão disponíveis para o formato IPv6: as regras de firewall devem estar no formato IPv4. Se você especificar regras de firewall no formato IPv6, receberá um erro de validação.