Instalación y configuración PostgreSQL con acceso remoto

Comenzaremos, cómo no, con su instalación, en mi caso, la haremos sobre una máquina Debian 9.

# apt update
# apt upgrade
# apt install postgresql

Una vez haya finalizado la instalación procederemos a, primero “entraremos” en la base de datos.

# su - postgres
psql

Ya con el prompt de PostgreSQL crearemos una base de datos.

# CREATE DATABASE prueba;

A dicha base de datos le crearemos una tabla para poder comprobar luego la conexión. Por ejemplo.

CREATE TABLE gente
(
    DNI        varchar(9),
    Nombre     varchar(50)
);
INSERT INTO gente VALUES('11111111X','Pepito Grillo');

Y crearemos el/los usuario/s que tendrán permiso de acceso a dicha base de datos. Primero, simplemente, crear el/los usuario/s.

# CREATE ROLE usuarioX with PASSWORD 'password';

Y darle los permisos de acceso.

# GRANT ALL PRIVILEGES ON DATABASE prueba TO usuarioX;

Y ya, para ultimar la configuración del servidor modificaremos los ficher

/etc/postgresql/9.6/main/postgresql.conf
/etc/postgresql/9.6/main/pg_hba.conf

Del primero, descomentaremos la línea.

listen_addresses = 'localhost'

Y la dejaremos así.

listen_addresses = '*'

Para permitir que se acepten peticiones desde cualquier host de cualquier red.
Si queremos que sólo puedan acceder unos host’s determinados, especificaremos su dirección ip y los separaremos por comas (83.45.24.17, 65.12.23.45) y si queremos una serie de redes completa, pues especificaremos el rango de la red y las separamos por comas (85.52.0.0/24, 103.52.0.0/24)

Y del segundo, cambiaremos

# IPv4 local connections:
host    all             all             127.0.0./32            md5

Por

# IPv4 local connections:
host    all             all             all                   md5

Para permitir las conexiones desde cualquier dirección ip con cualquier usuario y base de datos (si éste tiene permiso para ello).

Y procedemos a reiniciar el servicio de PostgreSQL.

# systemctl restart postgresql

El último paso será el de la instalación de un cliente, en una máquina remota y el acceso a dicha base de datos creada con su correspondiente usuario. Lo haremos con el cliente que nos ofrece PostgreSQL.

# apt install postgresql-client

Y ya accedemos a la base de datos de la máquina que da servicio con el siguiente comando.

psql -h xxx.xxx.xxx.xxx -U usuarioX -d prueba

Nos pedirá nuestra contraseña de usuario y estaremos dentro de la base de datos.

Posibles errores.

En algún caso me ha pasado que no he podido hacer un simple SELECT sobre la tabla creada, por falta de permisos, cuando en teoría, al otorgarle el “# GRANT ALL PRIVILEGES ON DATABASE prueba TO usuarioX;” que realizamos antes debería ir correctamente.

Para solucionar ésto (desde el servidor, dentro de la base de datos específica y como superusuario) le otorgué los permisos que necesitaba para cada tabla, del estilo:

# GRANT SELECT ON gente TO usuarioX;

 

Anuncios

One thought on “Instalación y configuración PostgreSQL con acceso remoto

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s