- Gestión integral de cuentas mediante herramientas gráficas como Database Actions y comandos SQL directos.
- Implementación de estrategias de seguridad avanzadas a través de roles, perfiles y autenticación basada en secretos.
- Control exhaustivo de privilegios de sistema y de objeto para garantizar el principio de mínimo privilegio.
Si te estás metiendo en el mundo de Oracle, lo primero que te darás cuenta es que controlar quién entra y qué puede hacer es la piedra angular de cualquier base de datos seria. No se trata solo de crear un nombre y una clave, sino de montar todo un ecosistema de permisos que evite que alguien borre una tabla por accidente o que un usuario tenga más poder del que realmente necesita para su curro diario.
Desde las versiones más clásicas hasta las modernas Autonomous AI Databases en la nube, la lógica sigue siendo similar aunque las herramientas hayan evolucionado una barbaridad. En este artículo vamos a desgranar paso a paso cómo gestionar las cuentas, desde el uso de interfaces intuitivas hasta los comandos SQL más profundos, para que no te pille desprevenido ningún error de privilegios insuficientes.
Gestión de Usuarios en Entornos Autónomos (AI Database)
En las bases de datos autónomas de Oracle, la cosa es bastante más sencilla gracias a Database Actions. Para crear un usuario desde aquí, primero debes entrar como ADMIN. Te desplazas al menú de administración, seleccionas la sección de usuarios y le das al botón de crear. Aquí es donde defines el nombre, la contraseña y decides si quieres activar opciones como el acceso web, OML o el gráfico. No olvides asignar una cuota en el tablespace de datos para que el usuario pueda guardar sus cosas.
Si eres más de escribir código que de hacer clics, puedes usar cualquier cliente SQL como Oracle SQL Developer. Conectándote como ADMIN, basta con ejecutar la sentencia de creación. Un detalle vital es que en estas versiones se exigen contraseñas robustas: entre 12 y 30 caracteres, mezclando mayúsculas, minúsculas y números, y evitando que el nombre del usuario aparezca en la clave.
Para los que buscan el máximo nivel de seguridad, existe la autenticación basada en secretos. En lugar de guardar la clave en la base de datos, esta se almacena en un almacén externo como OCI Vault, AWS Secrets Manager o Azure Key Vault. El proceso implica crear una credencial que apunte al secreto y luego crear el usuario vinculándolo a dicha credencial mediante la cláusula IDENTIFIED BY CREDENTIAL, eliminando así el riesgo de exponer claves en scripts o logs.
Fundamentos de Cuentas y Permisos Administrativos
En el núcleo de Oracle existen cuentas con superpoderes. El usuario SYS es el jefe supremo, ya que es el propietario del diccionario de datos; por eso, ni se te ocurra crear tablas o vistas en su esquema. Luego tenemos a SYSTEM, que también tiene rol de DBA y se usa para tareas administrativas generales. También existen cuentas como SYSMAN o DBSMNP dedicadas a la monitorización y gestión a través de Enterprise Manager.
A nivel de privilegios, hay dos categorías administrativas muy potentes. El privilegio SYSDBA permite hacer prácticamente todo, desde arrancar y parar la instancia hasta recuperar la base de datos. Por otro lado, SYSOPER es un poco más limitado, permitiendo la gestión de la instancia pero sin capacidad para realizar recuperaciones completas o crear la base de datos desde cero.
Propiedades y Estados de las Cuentas
Cuando defines un usuario, no solo eliges el nombre. Debes configurar el tablespace por defecto y el temporal, que es donde Oracle hace las operaciones de ordenamiento pesadas. Además, es crucial gestionar la cuota de almacenamiento; si no le asignas espacio, el usuario podrá conectar pero no podrá crear ni una sola tabla.
El estado de una cuenta puede variar según lo que pase. Una cuenta puede estar abierta y operativa, o puede quedar bloqueada por el administrador mediante el comando LOCK. También existe el estado de expirada, que ocurre cuando el tiempo de vida de la contraseña se agota, obligando al usuario a resetearla para volver a entrar.
Sistemas de Autentificación
Existen diversas formas de validar la identidad de quien intenta conectar. La más habitual es la autentificación por contraseña en el diccionario de datos, donde la clave viaja cifrada mediante AES. Para los administradores, se puede usar la autentificación del Sistema Operativo, permitiendo entrar con un simple comando si el usuario pertenece a grupos como dba u oper en Linux, o ORA_DBA en Windows.
También contamos con la autentificación por archivo de contraseñas, gestionada con la utilidad ORAPWD, que es fundamental para conectar cuando la base de datos aún no está abierta. Para entornos más corporativos, se utiliza la autenticación externa (como Kerberos o RADIUS) o la global a través de servicios LDAP como Oracle Internet Directory.
Operaciones SQL para el Control de Usuarios
Para crear un usuario desde la consola, la sintaxis básica es CREATE USER nombre IDENTIFIED BY contraseña. A esto le puedes añadir cláusulas para definir el tablespace, la cuota y el perfil. Si necesitas hacer cambios sobre la marcha, el comando ALTER USER es tu mejor aliado para cambiar la clave, modificar el espacio asignado o bloquear la cuenta.
Cuando un usuario ya no es necesario, se usa DROP USER para borrar la cuenta. Si el usuario tiene tablas o datos, es obligatorio añadir la opción CASCADE, ya que de lo contrario Oracle te dará un error y no borrará la cuenta para evitar la pérdida accidental de información.
El Mundo de los Privilegios y Roles
Los privilegios se dividen en dos grandes grupos. Los privilegios de sistema permiten realizar tareas globales, como CREATE SESSION para poder entrar o CREATE TABLE para crear tablas. Algunos son muy peligrosos, como GRANT ANY OBJECT PRIVILEGE, que permite dar permisos sobre cosas que no te pertenecen.
Los privilegios de objeto son mucho más específicos. Se refieren a qué puedes hacer sobre una tabla concreta (SELECT, INSERT, UPDATE, DELETE). Para otorgarlos, usamos la sentencia GRANT. Si quieres que el usuario que recibe el permiso pueda dárselo a otros, debes añadir la cláusula WITH GRANT OPTION.
Para no volvernos locos asignando cien permisos a cada persona, usamos los roles. Un rol es básicamente un paquete de privilegios. Por ejemplo, el rol CONNECT es el básico para entrar, mientras que RESOURCE permite crear objetos. Podemos crear nuestros propios roles con CREATE ROLE y luego asignarlos masivamente a los usuarios, facilitando enormemente el mantenimiento.
Administración de Perfiles y Recursos
Los perfiles sirven para que un usuario no se coma todos los recursos del servidor. Puedes limitar la CPU por sesión, el tiempo de inactividad (IDLE_TIME) o el número de conexiones simultáneas. Para que esto funcione, hay que activar la variable de sistema RESOURCE_LIMIT poniéndola en TRUE.
Además, los perfiles controlan la seguridad de las claves. Puedes definir el FAILED_LOGIN_ATTEMPTS para bloquear la cuenta tras varios fallos, o el PASSWORD_LIFE_TIME para obligar a cambiar la contraseña cada cierto tiempo. Todo esto se asigna al usuario mediante la cláusula PROFILE en el comando de creación o modificación.
Gestión en Oracle Linux (Capa de Sistema Operativo)
A veces la administración no es solo dentro de la base de datos, sino en el servidor donde reside. En Oracle Linux, se gestionan usuarios con useradd y usermod. Es común crear un grupo específico para la base de datos y asignar al usuario oracle a dicho grupo para gestionar los permisos de escritura en directorios como /u01.
Para tareas de mantenimiento, se puede otorgar privilegio sudo a ciertos usuarios editando el archivo /etc/sudoers o añadiéndolos al grupo wheel. Esto permite que un administrador de sistemas realice tareas de root sin tener que iniciar sesión permanentemente como superusuario, mejorando la trazabilidad y seguridad del servidor.
Dominar la gestión de usuarios en Oracle implica saber navegar entre la interfaz gráfica de la nube, los comandos SQL de administración y la configuración del sistema operativo. Desde la creación básica de cuentas y el control de cuotas en los tablespaces, hasta la implementación de roles complejos, perfiles de seguridad y autenticación externa, el objetivo siempre es mantener el equilibrio entre la operatividad del usuario y la integridad total de la base de datos.








