Cómo crear y administrar usuarios en Oracle Database

Última actualización: 03/10/2026
Autor: Isaac
  • Uso de sentencias SQL fundamentales como CREATE, ALTER y DROP USER para la gestión del ciclo de vida de las identidades.
  • Implementación de una estructura de seguridad basada en privilegios de sistema, privilegios de objeto y roles agrupadores.
  • Control de consumo de recursos y políticas de seguridad de acceso mediante la configuración de perfiles de usuario.
  • Gestión moderna en entornos autónomos utilizando interfaces gráficas y autenticación externa basada en secretos de nube.

Servidores de base de datos en un centro de datos moderno con iluminación azul, representando el entorno de Oracle Database.

Cuando te metes en el mundo de Oracle Database, lo primero que te das cuenta es que el control de quién entra y qué puede tocar es la columna vertebral de la seguridad. No se trata solo de soltar un usuario y una contraseña, sino de gestionar un ecosistema de identidades que permita que la base de datos funcione como un reloj suizo sin dejar la puerta abierta a cualquier descuido.

Administrar usuarios puede parecer un quebradero de cabeza al principio, especialmente si te encuentras con errores de privilegios insuficientes, pero una vez que entiendes cómo se entrelazan los roles, los perfiles y los permisos, la cosa se vuelve mucho más sencilla. Vamos a desgranar paso a paso cómo montar esto, desde la consola hasta las opciones más modernas de la nube.

Ingeniera de sistemas monitoreando servidores en un moderno centro de datos cloud.
Related article:
Guía Completa de Servicios Cloud para Startups con Presupuesto Ajustado

Cuentas administrativas y el corazón del sistema

Laptop mostrando un icono de candado de seguridad, ilustrando el control de acceso y gestión de identidades.

Nada más instalar Oracle, el sistema nos deja unas cuantas cuentas con superpoderes. La más potente es SYS, que es básicamente el dueño del diccionario de datos; es vital no usarla para crear tablas comunes, ya que su rol es puramente administrativo. Luego tenemos a SYSTEM, que también tiene privilegios de DBA y se usa para tareas de gestión más cotidianas. Además, existen cuentas como SYSMAN y DBSMNP, diseñadas específicamente para la monitorización y el uso de Enterprise Manager.

En cuanto a los privilegios de alto nivel, destacan SYSDBA y SYSOPER. Mientras que el primero puede hacer prácticamente cualquier cosa, incluyendo crear o borrar la base de datos y recuperarla, el segundo es un poco más limitado y no permite ciertas operaciones de recuperación total o creación desde cero. Para echar un ojo a quién tiene estos poderes, la vista V$PWFILE_USERS es la herramienta ideal.

  Archivo como dataset intelectual: de corpus personal a IA útil

Cómo dar de alta y gestionar usuarios

Administrador de bases de datos trabajando en la configuración de usuarios y privilegios desde su computadora.

Para crear un usuario desde la línea de comandos, la sentencia estrella es CREATE USER. No basta con poner un nombre y una clave; podemos definir el tablespace por defecto y asignar una cuota de almacenamiento específica para que el usuario no se coma todo el disco. Por ejemplo, si queremos que alguien tenga solo 15MB, se lo indicamos en la misma instrucción. También podemos dejar la cuenta bloqueada desde el inicio o marcar la contraseña como caducada para obligar al usuario a cambiarla en su primer acceso.

Creación y actualización de usuarios a partir de un archivo CSV de recursos humanos con powershell
Related article:
Creación y actualización de usuarios desde CSV de RRHH con PowerShell

Si necesitamos hacer cambios sobre la marcha, usamos ALTER USER, que nos permite modificar desde la contraseña hasta el perfil asociado. Y si llega el momento de borrar a alguien, DROP USER es la opción, aunque si el usuario ha creado cosas, habrá que añadir la cláusula CASCADE para que Oracle limpie todo el esquema antes de eliminar la cuenta. Para ver la lista completa de usuarios y su estado, la vista DBA_USERS es la fuente de verdad.

El laberinto de los privilegios y los roles

Infraestructura tecnológica de racks de servidores, simbolizando la potencia y escalabilidad de Oracle en la nube.

Aquí es donde la cosa se pone interesante. Un privilegio es, básicamente, un permiso para hacer algo. Tenemos los privilegios de sistema, que afectan a toda la base de datos (como CREATE SESSION para poder entrar o CREATE TABLE para crear tablas), y los privilegios de objeto, que son permisos quirúrgicos sobre una tabla o vista concreta, como hacer un SELECT o un UPDATE en una tabla específica de otro esquema.

Para no volvernos locos asignando permisos uno a uno, Oracle usa los roles. Un rol es como un paquete de privilegios. Creamos el rol con CREATE ROLE, le metemos todos los permisos necesarios mediante GRANT y luego le asignamos ese rol al usuario. Es mucho más limpio y fácil de mantener. Hay roles predefinidos muy comunes como CONNECT (para entrar), RESOURCE (para crear objetos) y DBA (poder total).

Optimizar rendimiento de bases Access
Related article:
Cómo optimizar el rendimiento de bases de datos Access a fondo

Para quitar permisos, usamos la instrucción REVOKE. Es importante saber que revocar un privilegio no deshace lo que el usuario ya haya hecho con él, simplemente le quita la capacidad de seguir haciéndolo. Para auditar quién tiene qué, podemos consultar vistas como DBA_SYS_PRIVS o DBA_TAB_PRIVS.

  Cómo crear buscadores personalizados en Access

Control de recursos mediante perfiles

Si no quieres que un usuario sature el servidor con sesiones infinitas o que use la CPU sin control, necesitas los perfiles. Primero hay que activar la limitación de recursos con ALTER SYSTEM SET RESOURCE_LIMIT=TRUE. A partir de ahí, podemos crear perfiles con CREATE PROFILE que limiten, por ejemplo, el número de intentos fallidos de login antes de bloquear la cuenta o el tiempo máximo de inactividad de una sesión.

Los perfiles también gestionan la política de contraseñas, definiendo cada cuánto tiempo deben caducar o cuántos días deben pasar antes de que se pueda reutilizar una clave antigua. Cada usuario puede tener asignado un único perfil, el cual se define al crear la cuenta o se cambia posteriormente con ALTER USER.

Gestión en entornos Autonomous AI Database

Detalle de una pantalla con texto sobre ciberseguridad, resaltando la importancia de la protección de datos en Oracle.

En las versiones más modernas y autónomas, la gestión se ha simplificado mucho gracias a Database Actions. Desde la interfaz web, como usuario ADMIN, puedes crear usuarios, asignarles roles como DWROLE y definir sus cuotas en el tablespace DATA sin tocar una sola línea de código. Además, estas bases de datos exigen contraseñas robustas (entre 12 y 30 caracteres, con mayúsculas, minúsculas y números).

Una funcionalidad avanzada es la autenticación basada en secretos. En lugar de guardar la clave en la base de datos, Oracle puede leerla de un almacén externo como OCI Vault o AWS Secrets Manager. Esto es una pasada para la seguridad, ya que permite rotar claves sin afectar a las aplicaciones. Para implementarlo, se crea una credencial con DBMS_CLOUD.CREATE_CREDENTIAL y luego se crea el usuario referenciando dicha credencial.

Primer plano de una unidad de servidor moderna en un centro de datos con iluminación azul, representando la infraestructura de seguridad en Linux.
Related article:
Seguridad en Linux: Guía Maestra de Copias de Seguridad y Recuperación ante Desastres

La administración de la cuenta ADMIN en estos entornos es crucial. Si la cuenta se bloquea, se puede desbloquear desde la consola de Oracle Cloud actualizando la contraseña. También es posible usar el Vault de OCI para definir la contraseña del administrador mediante APIs, evitando que la clave quede escrita en scripts de configuración.

  Cómo solucionar el error "Formato de base de datos no reconocido" en Access

El control de acceso en Oracle Database es un proceso integral que abarca desde la creación técnica del usuario y la asignación de cuotas de almacenamiento, hasta la implementación de capas de seguridad mediante roles y perfiles de recursos. Ya sea gestionando una instalación local con sentencias SQL tradicionales o utilizando las capacidades automatizadas de la nube con autenticación basada en secretos, el objetivo siempre es garantizar que cada identidad tenga estrictamente los permisos necesarios para operar, manteniendo la integridad del diccionario de datos y el rendimiento global del sistema.