Por padrão quando instalamos o PostgreSQL, seja ele compilado ou via gerenciador de pacotes, ele vem configurado para permitir apenas acesso local. Para que possamos acessar o banco de dados remotamente devemos ajustar 2 arquivos conforme veremos abaixo.

Primeiro, abra o arquivo postgresql.conf que se encontra em /usr/local/pgsql/data/postgresql.conf com seu editor preferido (vi, nano, etc). Próximo da linha 59 descomente a linha e coloque conforme abaixo. O asterisco permite escutar acessos de qualquer lugar.

listen_addresses = '*'

No arquivo pg_hba.conf é que definiremos qual usuário poderá acessar, de qual rede/ip e com qual tipo de acesso. Vamos ver o exemplo que já temos no próprio arquivo de configuração.

# TYPE DATABASE USER ADDRESS       METHOD
host   all      all  127.0.0.1/32  trust

O primeiro campo é o tipo de conexão. Local é o socket local. Host pode ser conexão com ou sem criptografia. Hostssl permite apenas conexão criptografada e Hostnossl é conexão apenas em texto plano.

O segundo campo é o banco de dados na qual pode conectar, no exemplo as conexões locais podem acessar quaisquer banco de dados.

O terceiro campo é o usuário que pode acessar o banco de dados, nesse caso qualquer usuário pode acessar.

O quarto campo indica o IP ou rede que pode acessar o banco de dados, nesse caso apenas conexão local.

Por último é o método de autenticação. Trust indica que é conexão confiável e não vai exigir senha para conectar. A opção mais utilizada é md5 que exige senha cadastrada no proprio banco de dados.

Vamos supor que eu quero permitir que o Pedro na rede local 10.10.10.0 possa acessar o banco de dados do Marketing com autenticação, nesse caso eu adicionaria a linha abaixo

# TYPE  DATABASE   USER   ADDRESS        METHOD
host    all        all    127.0.0.1/32   trust
host    marketing  pedro  10.10.10.0/24  md5

Se eu tenho um servidor Apache/PHP e quero que o usuário portal acesse o banco de dados portal à partir do IP específico do servidor então devo colocar conforme abaixo:

# TYPE  DATABASE   USER   ADDRESS          METHOD
host    all        all    127.0.0.1/32     trust
host    marketing  pedro  10.10.10.0/24    md5
host    portal     portal 192.168.0.5/32   md5

Lembrando que se você tem firewall configurado no sistema operacional então deverá fazer as devidas configurações para permitir o acesso pela porta 5432.

Após ajustado os acessos não é necessário restartar o banco de dados, apenas um reload é suficiente.


Cleberson

Casado, pai de família, autodidata e amante de tecnologia. Especialista em PHP, MySQL e PostgreSQL, certificado em RedHat e formando em Gestão de TI.

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *