Ho bisogno di accedere a un database postgresql da una macchina remota su un VPS su DigitalOcean in esecuzione 12.10 e postgresql 9.1.
Come faccio a fare questo? Ho notato che la porta 5432 è chiusa, come posso aprirla?
Ho bisogno di accedere a un database postgresql da una macchina remota su un VPS su DigitalOcean in esecuzione 12.10 e postgresql 9.1.
Come faccio a fare questo? Ho notato che la porta 5432 è chiusa, come posso aprirla?
Risposte:
Per aprire la porta 5432 modifica il tuo /etc/postgresql/9.1/main/postgresql.conf
e cambia
listen_addresses='localhost'
per
listen_addresses='*'
e riavvia il tuo DBMS
invoke-rc.d postgresql restart
ora puoi connetterti con
$ psql -h hostname -U username -d database
se non sei in grado di autenticarti, allora devi concedere al tuo utente i diritti di accesso al tuo database
Modifica il tuo
/etc/postgresql/9.1/main/pg_hba.conf
e aggiungi
host all all all md5
(Questo è per un accesso completamente aperto. Per un controllo più rigoroso, consultare la documentazione pg_hba.conf e regolare in base alle proprie esigenze).
D'ora in poi avrai bisogno anche di una ricarica
invoke-rc.d postgresql reload
Non ho bisogno di dire che questa è una configurazione di base, ora dovresti pensare a modificare il tuo firewall e migliorare la sicurezza del tuo DBMS.
host <database> <user> <remote_client_IPaddress>/24 md5
Questo non funziona più, se mai:
ospita tutto * md5
Le righe possibili corrette per questo sono:
ospitare tutto tutto il range 0.0.0.0/0 md5 # ipv4
ospitare tutti tutti: gamma 0/0 md5 # ipv6
ospita tutti tutti tutti i md5 #all ip
host all all all md5
funzionerà bene? È corretto? qualche problema di sicurezza?
La risposta più votata e accettata ha serie richieste di sicurezza. Questo metodo è disabilitato per impostazione predefinita per buoni motivi.
Utilizzare meglio il port forwarding locale con ssh
:
ssh -L local_port:localhost:foreign_port user@server
Inizia il port forwarding:
ssh -L 5432:localhost:5432 user@your-server.com
#or
ssh -L 5432:127.0.0.1:5432 user@your-server.com
(Cambia le porte locali ed esterne per adattarle alla tua configurazione).
Quindi è possibile connettersi direttamente al database dal computer locale:
psql -U db_user -p local_port -l