Para poder habilitar que el usuario se conecte y que se le requiera su contraseña necesitaremos modificar el archivo
pg_hba.conf el cual se encuentra en la ruta /etc/postgresql/[psql_version]/main/, para este
ejemplo práctico usaré la version 16, por lo tanto para editar el archivo debes ejecutar el siguiente comando con sudo y usaré el editor de nano:
Te recomiendo que siempre hagas una copia del archivo original.
El contenido de las últimas 15 filas del archivo pg_hba.conf debe ser muy similar al siguiente:
Nos movemos hasta las línea que dicen:
{% set iii %} # "local" is for Unix domain socket connections only local all all peer {% endset %} {% with codigo=iii.strip() %}{% include 'components/copy-code.html' %}{% endwith %}Vamos a comentar la segunda línea del código anterior para ello necesitamos añadir el prefijo '#' en la linea, yo suelo añadir al final otro signo '#'' y poner una pequeña nota de cuando la modifiqué, tambien añadiremos una tercera linea donde indicaremos que todos los usuarios que se intenten conectar a la base de datos se deberan autenticar por medio de contraseña.
{% set iv %} # "local" is for Unix domain socket connections only #local all all peer # 23.04.2024 13:14 hrs dix mod local all all md5 {% endset %} {% with codigo=iv.strip() %}{% include 'components/copy-code.html' %}{% endwith %}
Diferencia en claves:
- peer: la autenticación basada en el nombre de usuario del sistema operativo.
- md5: la autenticación basada en contraseña almacenada en formato MD5 para el usuario específico `postgres`.
En resumen, la elección entre `peer` y `md5` depende de cómo deseas gestionar la autenticación de los usuarios
locales en PostgreSQL: si prefieres que se autentiquen automáticamente utilizando su nombre de usuario del sistema
operativo (`peer`) o si deseas que proporcionen una contraseña específica (`md5`).
Luego nos vamos a las líneas:
{% set v %} # IPv6 local connections: host all all ::1/128 scram-sha-256 {% endset %} {% with codigo=v.strip() %}{% include 'components/copy-code.html' %}{% endwith %}Del código anterior comentamos la segunda linea y añadimos una tercera línea que requiera que el usuario se auntentifique cada que se conecte al servidor de la base de datos:
{% set vi %} # IPv6 local connections: #host all all ::1/128 scram-sha-256 # 23.04.2024 13:14 hrs dix mod host all all 0.0.0.0/0 md5 {% endset %} {% with codigo=vi.strip() %}{% include 'components/copy-code.html' %}{% endwith %}
Para guardar todos los cambios realizados en nano debes de oprimir la combinación de teclas CTRL + s y para
cerrar el editor oprime la combinación de teclas CTRL + x.
Finalmente para aplicar cambios debemos ejecutar el comando: