Preciso acessar um banco de dados postgresql de uma máquina remota em um VPS no DigitalOcean executando 12.10 e postgresql 9.1.
Como eu faço isso? Notei que a porta 5432 está fechada, como faço para abrir isso?
Preciso acessar um banco de dados postgresql de uma máquina remota em um VPS no DigitalOcean executando 12.10 e postgresql 9.1.
Como eu faço isso? Notei que a porta 5432 está fechada, como faço para abrir isso?
Respostas:
Para abrir a porta 5432, edite /etc/postgresql/9.1/main/postgresql.conf
e altere
listen_addresses='localhost'
para
listen_addresses='*'
e reinicie seu DBMS
invoke-rc.d postgresql restart
agora você pode se conectar com
$ psql -h hostname -U username -d database
se você não conseguir se autenticar, precisará conceder ao seu usuário direitos de acesso ao seu banco de dados
Edite seu
/etc/postgresql/9.1/main/pg_hba.conf
e adicione
host all all all md5
(Isso é para um amplo acesso aberto. Para um controle mais rígido, consulte a documentação do pg_hba.conf e ajuste de acordo com suas necessidades).
Daqui em diante, você também precisará de uma recarga
invoke-rc.d postgresql reload
Não preciso mencionar que essa é uma configuração básica, agora você deve modificar o firewall e melhorar a segurança do seu DBMS.
host <database> <user> <remote_client_IPaddress>/24 md5
Isso não funciona mais, se é que alguma vez funcionou:
hospedar tudo * md5
As linhas corretas possíveis para isso são:
hospedar todos os 0.0.0.0/0 md5 # ipv4 range
hospedar tudo :: intervalo 0/0 md5 # ipv6
hospedar tudo tudo md5 #all ip
host all all all md5
funcionará bem? Isso está correto? algum problema de segurança?
A resposta mais votada e aceita tem sérias impulsões de segurança. Este método está desativado por padrão por boas razões.
Melhor usar o encaminhamento de porta local com ssh
:
ssh -L local_port:localhost:foreign_port user@server
Inicie o encaminhamento de porta:
ssh -L 5432:localhost:5432 user@your-server.com
#or
ssh -L 5432:127.0.0.1:5432 user@your-server.com
(Altere as portas locais e estrangeiras para ajustar sua configuração).
Em seguida, você pode conectar-se diretamente ao banco de dados no seu computador local:
psql -U db_user -p local_port -l