Gestión de Usuarios, Tablespaces y Privilegios en Oracle SQL: Práctica Completa
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;