PostgreSQL
20 min de lecturaRoles
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