Saltar la navegación

12.- Lenguaje de control de datos (DCL).

Caso práctico

Juan.
Ministerio de Educación (Uso educativo nc)


Juan cree que será necesario conocer quiénes acceden a la base de datos para poder crearles sus contraseñas y darles los permisos necesarios, de manera que la administración de la base quede en manos de quien corresponde, y el sistema sea seguro. No quiere ni imaginarse que quedara algún cabo suelto, y cualquier usuario con algo de conocimientos pudiera acceder sin consentimiento y con los permisos suficientes, como para manipular los datos a su antojo.

 Grupo de usuarios.
Leandro Sciola (Open Clip Art .CC)


Ya hemos visto que necesitamos una cuenta de usuario para acceder a los datos de una base de datos. Las claves de acceso se establecen cuando se crea el usuario y pueden ser modificados por el Administrador o por el propietario de dicha clave. La Base de Datos almacena encriptadas las claves en una tabla del diccionario llamada DBA_USERS.

¿Cómo se crean los usuarios? La sintaxis es:

CREATE USER NombreUsuario
IDENTIFIED BY ClaveAcceso
[DEFAULT TABLESPACE tablespace ]
[TEMPORARY TABLESPACE tablespace]
[QUOTA int {K | M} ON tablespace]
[QUOTA UNLIMITED ON tablespace]
[PROFILE perfil];

donde:

  • CREATE USER: crea un nombre de usuario que será identificado por el sistema.
  • IDENTIFIED BY: permite dar una clave de acceso al usuario creado.
  • DEFAULT TABLESPACE: asigna a un usuario el Tablespace por defecto para almacenar los objetos que cree. Si no se asigna ninguna, será SYSTEM.
  • TEMPORARY TABLESPACE: especifica el nombre del Tablespace para trabajos temporales. Por defecto será SYSTEM.
  • QUOTA: asigna un espacio en Megabytes o Kilobytes en el Tablespace asignado. Si no se especifica el usuario no tendrá espacio y no podrá crear objetos.
  • PROFILE: asigna un perfil al usuario. Si no se especifica se asigna el perfil por defecto.

Recuerda que para crear usuarios debes tener una cuenta con privilegios de Administrador.

Para ver todos los usuarios creados utilizamos las vistas ALL_USERS y DBA_USERS. Y para ver en mi sesión los usuarios que existen pondría: DESC SYS.ALL_USERS;

Practiquemos un poco con este comando. Creemos una cuenta de usuario limitado, que no tenga derecho ni a guardar datos ni a crear objetos, más tarde le daremos permisos:

CREATE USER UsuarioLimitado IDENTIFIED BY passworddemiusuariolimitado ;
 

Podemos modificar usuarios mediante el comando ALTER USER, cuya sintaxis es la siguiente:

ALTER USER NombreUsuario
IDENTIFIED BY clave_acceso
[DEFAULT TABLESPACE tablespace ]
[TEMPORARY TABLESPACE tablespace]
[QUOTA int {K | M} ON tablespace]
[QUOTA UNLIMITED ON tablespace]
[PROFILE perfil];
 

Un usuario sin privilegios de Administrador únicamente podrá cambiar su clave de acceso.

Para eliminar o borrar un usuario utilizamos el comando DROP USER con la siguiente sintaxis:

DROP USER NombreUsuario [CASCADE];
 

La opción CASCADE borra todos los objetos del usuario antes de borrarlo. Sin esta opción no nos dejaría eliminar al usuario si éste tuviera tablas creadas.

Acción de proteger información para que no pueda ser leída sin una clave.