Gestión de Usuarios, Tablespaces y Privilegios en Oracle SQL: Práctica Completa

Informática3,81 KB

Práctica de Administración de Bases de Datos en Oracle SQL

A continuación se presenta el desarrollo de una práctica sobre la creación de tablespaces, usuarios, asignación de privilegios y manipulación de datos en Oracle SQL, utilizando como caso de estudio una base de datos de un supermercado.

a) Creación del tablespace

CREATE TABLESPACE supermercado DATAFILE 'c:\base1' SIZE 3M;

b) Creación de usuarios y asignación de cuotas

  • CREATE USER muser1 IDENTIFIED BY muser1;
  • CREATE USER muser2 IDENTIFIED BY muser2;
  • Asignar...

ALTER USER muser1 DEFAULT TABLESPACE supermercado QUOTA 1M ON supermercado;
ALTER USER muser2 DEFAULT TABLESPACE supermercado QUOTA 1M ON supermercado;

c) Otorgamiento de privilegios de sistema

GRANT CREATE SESSION TO muser1;
GRANT CREATE SESSION TO muser2;

GRANT CREATE TABLE TO muser1;
GRANT CREATE TABLE TO muser2;

Generación de tablas con Toad

Con Toad se genera el código de las tablas, que luego se pega en SQL para su creación.

Consulta de la estructura de una tabla

Para ver la estructura de la tabla producto:

DESCRIBE producto;

Inserción de datos

Datos de la tabla area:

INSERT INTO area VALUES('A001','lácteos',2);
INSERT INTO area VALUES('A002','embutidos',5);
INSERT INTO area VALUES('A003','panadería',5);
INSERT INTO area VALUES('A004','licores',2);
INSERT INTO area VALUES('A005','enlatados',1);

Datos de la tabla producto:

INSERT INTO producto VALUES('P001','leche 1L',5,'A001');
INSERT INTO producto VALUES('P002','jamón 500g',58,'A002');
INSERT INTO producto VALUES('P003','vino 1L',16.96,'A004');
INSERT INTO producto VALUES('P004','atún en agua',NULL,'A005');
INSERT INTO producto VALUES('P005','yogur 1.5 L',6.75,'A001');

d) Permisos de lectura entre usuarios

GRANT SELECT ON muser1.producto TO muser2;
GRANT SELECT ON muser1.area TO muser2;

e) Consulta como muser2

Ingresar como muser2 y ejecutar:

SELECT MIN(num_emp), MAX(num_emp) FROM muser1.area;

f) Consulta con combinación y actualización de datos

SELECT producto.nombre, area.nombre FROM muser1.producto, muser1.area WHERE producto.cod_area = area.cod_area;

Cambiar el valor 2 de una fila por 10:

UPDATE area SET num_emp = 10 WHERE cod_area = 'A001';

g) Creación de roles

Se crea un conjunto de tareas (rol) que posteriormente se asigna a un usuario:

CREATE ROLE base;
GRANT SELECT ON muser1.producto TO base;
GRANT UPDATE ON muser1.producto TO base;

Asignación del rol al usuario muser3:

GRANT base TO muser3;

h) Inserción y privilegios específicos

Al intentar insertar un registro como muser3:

INSERT INTO muser1.producto VALUES('P006','piña 350 g',4.5,'A005');

El usuario no tiene privilegios para insertar. Se otorga el permiso:

GRANT INSERT ON muser1.producto TO muser3;

Ahora sí puede ejecutar la inserción:

INSERT INTO muser1.producto VALUES('P006','piña 350 g',4.5,'A005');

i) Revocación de privilegios

REVOKE SELECT ON muser1.producto FROM muser3;
REVOKE SELECT ON muser1.producto FROM base;

j) Eliminación de usuario

DROP USER muser2;

Descargar

PDF Word HTML