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.
0 comentário