92 lines
3.2 KiB
HTML
92 lines
3.2 KiB
HTML
<!-- 9 -->
|
|
<div class="img zoomable">
|
|
<img src="/static/source_imgs/postgresql/post_2/crud_psql.webp" alt="" style="height: 320px; width: auto;">
|
|
</div>
|
|
<p>
|
|
Para crear un usuario en PostgreSQL que pueda realizar operaciones <a class="link" data-bs-toggle="modal"
|
|
data-bs-target="#CRUD">CRUD</a> en todas las tablas de una base de datos específica, sigue estos pasos:
|
|
</p>
|
|
|
|
<p><b>1. Acceder a PostgreSQL como superusuario</b><br>Abrimos una terminal y accedemos a PostgreSQL:</p>
|
|
|
|
{% set i %}
|
|
sudo -u postgres psql
|
|
{% endset %}
|
|
{% with codigo=i.strip() %}
|
|
{% include 'components/copy-code.html' %}
|
|
{% endwith %}
|
|
|
|
<p><b>2. Crear el usuario</b><br>Creamos un usuario con una contraseña:</p>
|
|
|
|
{% set ii %}
|
|
CREATE USER testusr WITH PASSWORD 'test1991';
|
|
{% endset %}
|
|
{% with codigo=ii.strip(), isEditable="true" %}
|
|
{% include 'components/copy-code.html' %}
|
|
{% endwith %}
|
|
|
|
<p><b>3. Conceder acceso a la base de datos</b><br>Damos acceso al usuario para que pueda conectarse a la base de datos:
|
|
</p>
|
|
|
|
{% set iii %}
|
|
GRANT CONNECT ON DATABASE db_test TO testusr;
|
|
{% endset %}
|
|
{% with codigo=iii.strip(), isEditable="true" %}
|
|
{% include 'components/copy-code.html' %}
|
|
{% endwith %}
|
|
|
|
<p><b>4. Otorgar permisos sobre el esquema public</b><br>Primero, nos conectamos a la base de datos y damos permisos
|
|
sobre el esquema:</p>
|
|
|
|
{% set iv %}
|
|
\c db_test;
|
|
GRANT USAGE ON SCHEMA public TO testusr;
|
|
GRANT CREATE ON SCHEMA public TO testusr;
|
|
{% endset %}
|
|
{% with codigo=iv.strip(), isEditable="true" %}
|
|
{% include 'components/copy-code.html' %}
|
|
{% endwith %}
|
|
|
|
<p>5. Conceder permisos en tablas y secuencias existentes <br>Otorgamos permisos CRUD sobre todas las tablas y acceso a
|
|
secuencias existentes:</p>
|
|
|
|
{% set v %}
|
|
GRANT SELECT, INSERT, UPDATE, DELETE ON ALL TABLES IN SCHEMA public TO testusr;
|
|
GRANT USAGE, SELECT, UPDATE ON ALL SEQUENCES IN SCHEMA public TO testusr;
|
|
{% endset %}
|
|
{% with codigo=v.strip(), isEditable="true" %}
|
|
{% include 'components/copy-code.html' %}
|
|
{% endwith %}
|
|
|
|
<p><b>6. Conceder permisos para futuras tablas y secuencias</b><br>Para asegurarnos de que los objetos creados en el
|
|
futuro también sean accesibles por testusr:</p>
|
|
|
|
{% set vi %}
|
|
ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT SELECT, INSERT, UPDATE, DELETE ON TABLES TO testusr;
|
|
ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT USAGE, SELECT, UPDATE ON SEQUENCES TO testusr;
|
|
{% endset %}
|
|
{% with codigo=vi.strip(), isEditable="true" %}
|
|
{% include 'components/copy-code.html' %}
|
|
{% endwith %}
|
|
|
|
<p><b>7. Salir de psql</b></p>
|
|
|
|
{% set vii %}
|
|
\q
|
|
{% endset %}
|
|
{% with codigo=vii.strip(), isEditable="true" %}
|
|
{% include 'components/copy-code.html' %}
|
|
{% endwith %}
|
|
|
|
<p><b>8. Probar la conexión con el nuevo usuario</b><br>Antes de conectarnos, debemos conocer la IP del servidor de base
|
|
de datos. Si el servidor está en el mismo equipo, la IP será 127.0.0.1: <br>
|
|
# psql -U testusr -d db_test -h localhost (te pedirá la contraseña por lo que deberás ingresarla)
|
|
psql -U testusr -d db_test -h 127.0.0.1
|
|
</p>
|
|
|
|
{% set viii %}
|
|
psql -U testusr -d db_test -h 127.0.0.1
|
|
{% endset %}
|
|
{% with codigo=viii.strip(), isEditable="true" %}
|
|
{% include 'components/copy-code.html' %}
|
|
{% endwith %} |