28 agosto 2024

Cómo crear un usuario con privilegios en Postgres en Digital Ocean


 
Importante

Prueba primero esto en un cluster que no sea de producción!



Si vienes de otra base de datos como Mysql, los permisos en Postgres pueden parecer un poco excesivos y complicados de configurar.

Pero una vez que los entiendes, es muy facil.


Todo se debe hacer con el user "doadmin", en caso contrario no va a funcionar.


Conectate por la consola con el comando que te da DO:


PGPASSWORD=your_doadmin_password psql -U doadmin -h your_host -d defaultdb --set=sslmode=require



1.- Crear el usuario.


Puedes usar el panel de control de DigitalOcean


2.- Crear la base de datos


CREATE DATABASE mi_dabatase WITH OWNER = mi_usuario;


Es importante también que el owner de la db sea el user que creaste.

3.- Asignarle los permisos al nuevo usuario para que pueda usar la nueva DB:


\c miniurl_production  -- Conéctate a la nueva base de datos

-- Concede todos los permisos sobre la base de datos
GRANT ALL PRIVILEGES ON DATABASE mi_dabatase TO mi_usuario;

-- Concede todos los permisos sobre todas las tablas en el esquema 'public'
GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO mi_usuario;

-- Concede todos los permisos sobre todas las secuencias en el esquema 'public'
GRANT ALL PRIVILEGES ON ALL SEQUENCES IN SCHEMA public TO mi_usuario;

-- Concede todos los permisos sobre todas las funciones en el esquema 'public'
GRANT ALL PRIVILEGES ON ALL FUNCTIONS IN SCHEMA public TO mi_usuario;