Permitiendo el acceso externo a PostgreSQL

Gustavo Orrillo
- 08/03/2022 - 1 min. de lectura


Por default PostgreSQL solo trabaja con conecciones locales. Es decir, los usuarios que se conectan a la misma están en el mismo server. La cual es la situación en la mayoría de las empresas argentinas (sería interesante hacer una encuesta para saber la cantidad de implementadores de Odoo que no saben que detrás del mismo, esta la base de datos PostgreSQL).

Bien, hay situaciones en las cuales necesitamos acceder a PostgreSQL de forma remota. Por ejemplo porque necesitamos utilizar una herramienta de queries para realizar consultas ad-hoc, o porque necesitamos actualizar datos de forma externa, etc etc... Como lo hacemos?

Primer paso, es modificar el archivo de configuración de PostgreSQL (postgresql.conf) para que el mismo acepte conecciones remotas:

listen_addressses = '*'

Por default, PostgreSQL solo acepta conecciones locales denegando el acceso a las conecciones locales. Esto se determina por una regla de seguridad provista en el archivo (pg_hba.conf). Por ejemplo agregando una línea con la dirección IP; 

# IPv4 local connections:
host    all             all             127.0.0.1/32             md5
# mi server
host    all             all             0.0.0.0/0                md5

También se permiten conecciones de múltiples direcciones proveyendo la dirección con formato CIDR.

Por último, una vez realizado el cambio se debe reiniciar el server de PostgreSQL. 

sudo systemctl postgresql.service restart

Y ya en forma remota podemos conectarnos y realizar queries contra la base de datos, por ejemplo mediante psql

sudo -u odoo15 psql -h 0.0.0.0 -d mi_base_de_datos
Acerca de:

Gustavo Orrillo

Passionate about programming, he has implemented Odoo for different types of businesses since 2010. In Moldeo Interactive he is a founding Partner and Programmer; In addition to writing on the Blog about different topics related to the developments he makes.