Para crear un usuario en PostgreSQL que pueda realizar operaciones CRUD en todas las tablas de una base de datos específica, sigue estos pasos:

1. Acceder a PostgreSQL como superusuario
Abrimos una terminal y accedemos a PostgreSQL:

{% set i %} sudo -u postgres psql {% endset %} {% with codigo=i.strip() %} {% include 'components/copy-code.html' %} {% endwith %}

2. Crear el usuario
Creamos un usuario con una contraseña:

{% set ii %} CREATE USER testusr WITH PASSWORD 'test1991'; {% endset %} {% with codigo=ii.strip(), isEditable="true" %} {% include 'components/copy-code.html' %} {% endwith %}

3. Conceder acceso a la base de datos
Damos acceso al usuario para que pueda conectarse a la base de datos:

{% set iii %} GRANT CONNECT ON DATABASE db_test TO testusr; {% endset %} {% with codigo=iii.strip(), isEditable="true" %} {% include 'components/copy-code.html' %} {% endwith %}

4. Otorgar permisos sobre el esquema public
Primero, nos conectamos a la base de datos y damos permisos sobre el esquema:

{% 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 %}

5. Conceder permisos en tablas y secuencias existentes
Otorgamos permisos CRUD sobre todas las tablas y acceso a secuencias existentes:

{% 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 %}

6. Conceder permisos para futuras tablas y secuencias
Para asegurarnos de que los objetos creados en el futuro también sean accesibles por testusr:

{% 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 %}

7. Salir de psql

{% set vii %} \q {% endset %} {% with codigo=vii.strip(), isEditable="true" %} {% include 'components/copy-code.html' %} {% endwith %}

8. Probar la conexión con el nuevo usuario
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:
# 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

{% 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 %}