jueves, 14 de febrero de 2019

Fichero pg_hba.conf de Postgresql

Como continuación del post sobre primeros pasos con Postgresql, hoy vamos a ver un poco más en profundidad el fichero pg_hba.conf que se suele ubicar en el directorio /etc/postgresql/XX/main/ (siendo XX el número de versión, por ejemplo 10 ó 9.3).
El fichero pg_hba.conf sirve para especificar los accesos a las bases de datos que permitiremos, es decir, sirve de ACL.
Si se edita el fichero, se comprobará que cada linea (no comentada) consta de una serie de campos separados por un espacio o un tabulador. El significado de los distintos campos es el siguiente:
Columna 1: TYPE
Puede tener el valor local o host.
Si utilizamos local, indicaremos que el acceso que estamos definiendo tendrá como origen el propio equipo donde está instalado el servicio Postgresql y accederemos al localhost.
Si usamos host, indicaremos que el acceso provendrá de un equipo en red, es decir, el que inicie el acceso no será la máquina donde se tenga instalado el servicio Postgresql y por tanto accederá por IP o hostname al servidor.
Columna 2: DATABASE
En el segundo campo se indicará el nombre de la base de datos a la que se permitirá el acceso. Es posible definir varias bases de datos en una misma linea separadas por comas.
Si se desea permitir el acceso a todas las bases de datos, se podrá usar la cadena de texto all.
Columna 3: USER
En este campo se especifica el usuario de base de datos al que se permite el acceso. Al igual que para el campo DATABASE, se pueden especificar varios usuarios separados por coma o utilizar all para habilitar el acceso a todos los usuarios (de base de datos, no del sistema operativo).
Columna 4: ADDRESS
El cuarto campo hace referencia a la IP o hostname de los equipos que podrán realizar la conexión a la BD que estamos definiendo. Por tanto, solo se puede indicar si el acceso de la linea que estamos escribiendo es de tipo host. Si el acceso definido es de tipo local habrá que dejar este campo vacío.
En este campo se pondrá el hostname del equipo permitido o la IP con máscara de red del equipo/s permitido/s.
Por ejemplo, para permitir un solo equipo se podrá indicar 192.168.1.55/32 (por ejemplo), y si se desea permitir el acceso a toda la subred se podría poner 192.168.1.0/24.
Columna 5: METHOD
La última columna especifica el método de autenticación para el acceso a la BD. Son varios los valores que se pueden especificar, pero los más comunes son:
  • trust: permite el acceso sin contraseña.
  • md5: solicita contraseña y la transmite de forma cifrada.
Una vez se modifique el fichero pg_hba.conf a nuestro gusto, hará falta aplicar los cambios mediante un reload del servicio:
$ service postgresql reload
Aunque se han comentado los valores más usados para cada campo, en la documentación oficial se recogen todas las opciones y posibilidades que ofrece el fichero pg_hba.conf.

No hay comentarios:

Publicar un comentario