Saltar al contenido principal
PostgreSQL
20 min de lectura

Roles

Gestión de roles y permisos en PostgreSQL

Los roles en PostgreSQL pueden representar usuarios o grupos.

Crear roles

sql
1-- Rol de login2CREATE ROLE usuario_con_login LOGIN PASSWORD 'contraseña';3 4-- Rol sin login (para grupos)5CREATE ROLE grupo_lectura;6 7-- Rol con privilegios8CREATE ROLE admin SUPERUSER CREATEDB CREATEROLE;

Gestionar roles

sql
1-- Modificar rol2ALTER ROLE usuario_con_login PASSWORD 'nueva_contraseña';3 4-- Eliminar rol5DROP ROLE usuario_con_login;6 7-- Ver roles8SELECT rolname, rolsuper, rolcreatedb, rolcanlogin9FROM pg_roles;

Privilegios

sql
1-- Conceder permisos2GRANT SELECT ON todos_los_usuarios TO grupo_lectura;3GRANT INSERT, UPDATE ON usuarios TO grupo_escritura;4 5-- Revocar permisos6REVOKE DELETE ON usuarios FROM grupo_escritura;7 8-- Conceder membresía9GRANT grupo_lectura TO usuario_con_login;

Sintaxis

Sintaxis
sql
1CREATE ROLE nombre [LOGIN] [SUPERUSER] [CREATEDB] [PASSWORD '...'];

Ejemplos

Crear y configurar rol

Rol de solo lectura para analistas

Ejemplo
sql
1CREATE ROLE analista LOGIN PASSWORD 'analista123';2GRANT CONNECT ON DATABASE mi_bd TO analista;3GRANT USAGE ON SCHEMA public TO analista;4GRANT SELECT ON ALL TABLES IN SCHEMA public TO analista;5ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT SELECT ON TABLES TO analista;

Resultado:

CREATE ROLE
GRANT
GRANT
GRANT
ALTER DEFAULT PRIVILEGES