Cómo crear un usuario y otorgar permisos en Oracle
Un usuario nuevo debe recibir solo los permisos que necesita. Otorgar de más es la causa más común de problemas de seguridad.
- 1
Crea el usuario
Define contraseña y el tablespace por defecto. En bases con contenedores, decide si es común o local.
CREATE USER app_user IDENTIFIED BY "Clave_Segura#2026" DEFAULT TABLESPACE users TEMPORARY TABLESPACE temp QUOTA 100M ON users; - 2
Otorga privilegios de conexión
Sin CREATE SESSION el usuario no puede iniciar sesión aunque exista.
GRANT CREATE SESSION TO app_user; - 3
Usa roles en lugar de grants sueltos
Agrupa permisos en un rol y asígnalo. Facilita el mantenimiento y la auditoría.
CREATE ROLE app_rol; GRANT SELECT, INSERT, UPDATE, DELETE ON ventas.pedidos TO app_rol; GRANT app_rol TO app_user; - 4
Otorga permisos de objeto puntuales
Para accesos específicos, otorga directo al objeto. Evita GRANT ANY salvo casos justificados.
GRANT SELECT ON ventas.clientes TO app_user; - 5
Revoca y verifica
Quita lo que sobra y revisa los privilegios efectivos del usuario.
SELECT * FROM dba_role_privs WHERE grantee = 'APP_USER'; SELECT * FROM dba_tab_privs WHERE grantee = 'APP_USER';
// el error común
Otorgar DBA o CREATE ANY TABLE por comodidad da acceso a toda la base. Un usuario de aplicación casi nunca lo necesita.
// cuándo conviene un experto
Si el esquema de permisos creció sin control o hay usuarios con más acceso del que deberían, conviene auditarlo. En dba.mx revisamos y ordenamos permisos con techo cerrado.
Agenda un Escaneo — desde USD $550Esta guía es orientativa y usa comandos de referencia. En producción, adapta a tu versión y prueba en un ambiente seguro primero.