Liberando acessos remotos PostgreSQL

Neste post mostrarei como configurar o SGDB (Sistema Gerenciador de Banco de Dados) PostgreSQL para receber conexões remotas, pois por padrão o PostgreSQL somente recebe conexões locais (localhost ou 127.0.0.1) para acesso às suas bases de dados.

Inicialmente você deverá encontrar os arquivos postgresql.conf  e pg_hba.conf.

Após os encontrar, abra cada um deles em seu editor de textos preferido e localize as sequintes linhas:

No postgresql.conf vamos editar a seguinte linha

#listen_addresses = ‘localhost’ # what IP address(es) to listen on

Como em todo arquivo de configuração em programas linux, o # na frente da linha significa um comentário e com isso desabilita o parâmetro seguinte, tomando seu valor default, que no caso é localhost.  Descomente essa linha e substitua seu valor por *.  Assim seu PostgreSQL estará apto a ouvir conexões de qualquer IP. Então essa linha ficará da seguinte forma:

#listen_addresses = ‘localhost’ # what IP address(es) to listen on
Isso não quer dizer que ele estará aberto para qualquer IP da rede.  É possível criar políticas de acesso através de outro arquivo que falaremos a seguir.

Liberando conexões no arquivo pg_hba.conf
Este é o arquivo do Postgresql responsável pela liberação de usuários, hosts e bancos de dados.  Nele é possível dizer qual usuário de qual IP (ou rede) conectará a qual banco.  É possível liberar qualquer usuário para coenctar a qualquer banco, mas esta é uma regra cautelosa a ser seguida pois pode comprometer a segurança do seu servidor de bases de dados.
Por padrão o arquivo vem com a seguinte configuração:
# “local” is for Unix domain socket connections only
local all all trust
# IPv4 local connections:
host all all 127.0.0.1/32 trust
# IPv6 local connections:
host all all ::1/128 trust
Pode haver alguma variação das configurações padrões de acordo com a versão utilizada, mas geralmente é algo que represente essas informações. Basicamente elas querem dizer que todas as conexões locais podem ser realizadas por qualquer usuário do banco a qualquer banco de dados.Para liberar o acesso remoto basta criar uma nova regra seguindo o seguinte padrão:

host all all 0.0.0.0/0 trust

Com essa regra qualquer usuário de qualquer IP poderá se conectar a qualquer database.
Importante: O parâmetro trust quer dizer que não será solicitada qualquer senha para conectar ao banco de dados. Então, qualquer pessoa com acesso à sua rede poderá se conectar ao servidor PostgreSQL sem nenhuma restrição. Se a sua rede for restrita como uma turma de um curso ou um ambiente de desenvolvimento interno de empresa não há riscos, porém, é necessário possuir um ambiente de rede interno isolado.

Este parâmetro é útil quando você ainda não se conectou ao banco para criar uma senha de acesso ao usuário postgres (do banco e não do sistema operacional). Então você se conecta e reseta a senha do usuário. Logo em seguida, altere o parâmetro para md5. Assim, uma senha será solicitada ao tentar conectar-se ao servidor Postgresql.

A liberação fica da seguinte maneira:
host all all 0.0.0.0/0 md5
É possível também liberar o acesso apenas a uma rede específica:

host all all 192.168.0.0/32 md5
Ou também, informar qual usuário poderá conectar:

host all usuariodobanco 192.168.0.0/32 md5
Também informar  o banco de dados a ser conectaro por este usuário:
host bancodedados usuariodobanco 192.168.0.0/32 md5
Na regra acima, o usuário usuariodobanco poderá conectar-se apenas ao banco bancodedados apenas se estiver dentro da rede 192.168.0.0.
Bom, por hoje é só, espero que seja útil.
T+
Anúncios

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s