Tema SQL
GRANT y REVOKE (DCL)
Otorgar o quitar permisos sobre objetos o roles.
Descripción
Control de acceso: SELECT, INSERT, UPDATE, DELETE, EXECUTE… sobre tablas, vistas o rutinas. Los roles agrupan permisos reutilizables (manual §23).
Estructura general
Forma habitual de la sentencia: orden de cláusulas, qué parte filtra, agrupa o proyecta columnas, y qué devuelve el motor. Cópiala como plantilla y sustituye nombres por tus tablas reales.
GRANT SELECT, INSERT ON esquema.tabla TO usuario_o_rol;
REVOKE INSERT ON esquema.tabla FROM usuario_o_rol;
Componentes
Cada componente tiene un papel concreto en la ejecución lógica de la sentencia. Léelos en orden: así entiendes qué puedes omitir, qué es obligatorio y qué expresiones son válidas en cada sitio según tu motor.
- Principio de menor privilegio
- Solo los permisos necesarios para cada cuenta.
Ejemplos
Ejemplo 1
GRANT SELECT ON empleados TO analista;
REVOKE INSERT ON empleados FROM analista;
Ejemplo 2
REVOKE ALL ON esquema.tabla FROM public;
Los ejemplos son ilustrativos. En producción usa consultas parametrizadas (prepared statements), revisa índices y aplica el principio de menor privilegio en cuentas de base de datos.