106 lines
4.8 KiB
HTML
106 lines
4.8 KiB
HTML
<!-- 10 -->
|
|
<div class="img zoomable">
|
|
<img src="/static/source_imgs/postgresql/post_3/psql1.webp" alt="" style="height: 350px; width: auto;">
|
|
</div>
|
|
<p>
|
|
Para poder habilitar que el usuario se conecte y que se le requiera su contraseña necesitaremos modificar el archivo
|
|
<b>pg_hba.conf</b> el cual se encuentra en la ruta <b>/etc/postgresql/<a class="link" data-bs-toggle="modal"
|
|
data-bs-target="#psql_version">[psql_version]</a>/main/</b>, para este
|
|
ejemplo práctico usaré la version 16, por lo tanto para editar el archivo debes ejecutar el siguiente comando con <a
|
|
class="link" data-bs-toggle="modal" data-bs-target="#sudo">sudo</a> y usaré el editor de <a class="link"
|
|
data-bs-toggle="modal" data-bs-target="#nano">nano</a>: <br>
|
|
</p>
|
|
|
|
{% set i %}
|
|
sudo nano /etc/postgresql/16/main/pg_hba.conf
|
|
{% endset %}
|
|
{% with codigo=i.strip(), isEditable="true" %}
|
|
{% include 'components/copy-code.html' %}
|
|
{% endwith %}
|
|
|
|
<p>
|
|
<b><i>Te recomiendo que siempre hagas una copia del archivo original.</i></b><br>
|
|
El contenido de las últimas 15 filas del archivo <b>pg_hba.conf</b> debe ser muy similar al siguiente:
|
|
</p>
|
|
|
|
{% set ii %}
|
|
# Database administrative login by Unix domain socket
|
|
local all postgres peer
|
|
|
|
# TYPE DATABASE USER ADDRESS METHOD
|
|
|
|
# "local" is for Unix domain socket connections only
|
|
local all all peer
|
|
# IPv4 local connections:
|
|
host all all 127.0.0.1/32 scram-sha-256
|
|
# IPv6 local connections:
|
|
host all all ::1/128 scram-sha-256
|
|
# Allow replication connections from localhost, by a user with the
|
|
# replication privilege.
|
|
local replication all peer
|
|
host replication all 127.0.0.1/32 scram-sha-256
|
|
host replication all ::1/128 scram-sha-256
|
|
{% endset %}
|
|
{% with codigo=ii.strip() %}{% include 'components/copy-code.html' %}{% endwith %}
|
|
|
|
<p>Nos movemos hasta las línea que dicen:</p>
|
|
|
|
{% 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 %}
|
|
|
|
<p>
|
|
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.
|
|
</p>
|
|
|
|
{% 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 %}
|
|
|
|
<p>
|
|
Diferencia en claves: <br>
|
|
- peer: la autenticación basada en el nombre de usuario del sistema operativo. <br>
|
|
- md5: la autenticación basada en contraseña almacenada en formato MD5 para el usuario específico `postgres`. <br>
|
|
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`).
|
|
</p>
|
|
<p>Luego nos vamos a las líneas: </p>
|
|
|
|
{% set v %}
|
|
# IPv6 local connections:
|
|
host all all ::1/128 scram-sha-256
|
|
{% endset %}
|
|
{% with codigo=v.strip() %}{% include 'components/copy-code.html' %}{% endwith %}
|
|
|
|
<p>
|
|
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:
|
|
</p>
|
|
|
|
{% 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 %}
|
|
|
|
<p>
|
|
Para guardar todos los cambios realizados en nano debes de oprimir la combinación de teclas <b>CTRL + s</b> y para
|
|
cerrar el editor oprime la combinación de teclas <b>CTRL + x</b>. <br><br>
|
|
Finalmente para aplicar cambios debemos ejecutar el comando:
|
|
</p>
|
|
|
|
{% set vii %}
|
|
sudo service postgresql restart
|
|
{% endset %}
|
|
{% with codigo=vii.strip() %}{% include 'components/copy-code.html' %}{% endwith %}
|