3.2. Creación de usuarios

Para crear usuarios empleamos la sentencia CREATE USER, cuya sintaxis es

CREATE USER username
      IDENTIFIED {BY password | EXTERNALLY | GLOBALLY AS 'external_name'}
         options;

Donde options

   DEFAULT TABLESPACE tablespace
   TEMPORARY TABLESPACE tablespace
   QUOTA int {K | M} ON tablespace
   QUOTA UNLIMITED ON tablespace
   PROFILE profile_name
   PASSWORD EXPIRE
   ACCOUNT {LOCK|UNLOCK}

Ejemplo: Crear usuario

CREATE USER usuarioLimitado
IDENTIFIED BY miClaveSecreta;

En este caso miClaveSecreta es la contraseña de usuarioLimitado que será guardada encriptada en la base de datos.

Ejemplo: Crear usuario con cambio de password obligatorio en el primer acceso

CREATE USER usuarioLimitado2
IDENTIFIED BY miClaveSecreta
PASSWORD EXPIRE;

Autenticación externa

Cuando un usuario conecta con la base de datos se verifica que el nombre de usuario es el mismo que el nombre de usuario del sistema operativo para permitir la validación.

No se almacenan las cuentas en la base de datos de ninguna forma. Estas cuentas están siempre referidas con OPS$ .A partir de la versión 10g puedes configurar OS_AUTHENT_PREFIX en el spfile

SQL > CREATE USER ops$UsuarioExterno IDENTIFIED BY miClaveSecreta;

Mediante IDENTIFIED EXTERNALLY decimos a la base de datos que nuestra cuenta es externa y tiene que ser validada con el sistema operativo.

Autenticación global

Cuando un usuario se conecta con la base de datos se verifica globalmente cuando la información pasa por una opción avanzada de seguridad ( ADVANCED SECURITY OPTION ) para la autenticación tal como Kerberos, RADIUS ....

Para las cuentas globales no se almacena tampoco nada en la base de datos.

SQL > CREATE USER UsuarioExterno IDENTIFIED GLOBALLY AS ‘CN=alumnos,OU=campus .......’

Mediante IDENTIFIED GLOBALLY decimos a la base de datos que nuestra cuenta se autentica globalmente, mediante otra opción de seguridad avanzada.

Mostrar los usuarios de la base de datos

SELECT USERNAME FROM ALL_USERS;

Donde

ALL_USERS es una vista de la tabla DBA_USERS

Borrar usuarios

Para eliminar usuarios usaremos la sentencia DROP USER, con una sintaxis

DROP USER user [ CASCADE ];

La opción CASCADE, se utiliza para borrar recursivamente los objetos del usuario que se pretende borrar.

DROP USER usuarioLimitado CASCADE;

CASCADE borra todos los objetos del esquema del usuario Oracle antes de borrar el usuario. Si el esquema contiene tablas, Oracle borrará todos las tablas y automáticamente eliminará cualquier restricción de integridas referencial referida a claves primarias o únicas en otros esquemas

Ejemplo: Borrar el usuario niBaseDatos. Causara un error, debido a que no tenemos privilegios para hacerlo

DROP USER nibasedatos CASCADE;