Está en la página 1de 3

I.E.S.

“LAS FUENTEZUELAS”

Relación 4.5: Gestión de Seguridad. Usuarios. Privilegios.


Roles. Perfiles.

Se deberá entregar un documento con el enunciado de cada apartado del ejercicio y a continuación
una/s captura/s de pantallas identificadas que recojan todas las instrucciones necesarias para la
resolución del mismo, al mismo tiempo se deberán copiar dichas instrucciones en un script, por lo que se
deberá entregar dos documentos en esta relación.

1. Para la realización de este ejercicio nos basaremos en los usuarios ALUMNO, ALUMNO1 y
ALUMNO2 creados anteriormente en los apuntes. Para conceder los permisos que se piden en el
ejercicio, deberás conceder anteriormente otros. Nota: no conceder el permiso select any table ni
insert any tabla a ningún usuario.
a. El usuario anteriormente creado ALUMNO1 va a crear una tabla de nombre TABLA1 que
contiene como campos ciudad varchar2(20) y temperatura number(4,2).
b. Inserta las siguientes tuplas:
insert into tabla1 values('JAÉN',37.8);
insert into tabla1 values('GRANADA',38.2);
c. Concede a ALUMNO2 los privilegios de SELECT e INSERT en TABLA1.
d. Accede con ALUMNO2 al contenido de la TABLA1.
e. El usuario ALUMNO1 da privilegios a ALUMNO para insertar en TABLA1.
f. Comprueba que ALUMNO puede insertar en TABLA1.
g. ¿Qué ocurre si ALUMNO consulta el contenido de TABLA1?
h. ALUMNO1 concede a ALUMNO2 todos los privilegios sobre TABLA1.
i. ALUMNO1 concede todos los privilegios sobre TABLA1 a todos los usuarios, incluyendo a los
que se crean después de ejecutar esta orden.
j. ALUMNO1 concede a ALUMNO sobre TABLA1 para que pueda modificar sólo la columna
temperatura.
k. ALUMNO modifica en TABLA1 la ciudad de JAÉN a una temperatura de 20.
l. ALUMNO1 concede a ALUMNO2 el privilegio para insertar en TABLA1 y, además, para que
él pueda pasar este privilegio a otros usuarios.
m. ALUMNO2 conceder el privilegio INSERT sobre la tabla TABLA1 de ALUMNO1 a ALUMNO.
n. ALUMNO inserta en tabla1. insert into tabla1 values('CÓRDOBA',37.8);
o. Crea el usuario ALUMNO4 con una quota de 300k en el tablespace users, contraseña
hola4 y el privilegio de crear sesión.
p. Concede a ALUMNO4 y ALUMNO el privilegio de administrador del sistema (DBA).
q. Hacer que ALUMNO1 pueda borrar usuarios y, además, pueda conceder este privilegio a
otros usuarios.
r. Todos los usuarios puedan hacer SELECT en cualquier tabla de cualquier usuario.
s. ALUMNO1 retira los privilegios SELECT y UPDATE sobre TABLA1 a ALUMNO2.
t. ALUMNO1 retira todos los privilegios concedidos a ALUMNO2 y ALUMNO sobre TABLA1.
u. Retirar el privilegio de borrar usuarios a ALUMNO1.
v. Retirar el privilegio de consultar cualquier tabla a todos los usuarios.
w. Retirar el privilegio de administrador (DBA) a los usuarios ALUMNO y ALUMNO4.
x. ¿Qué privilegios de sistema, roles y privilegios sobre objetos tiene concedidos el usuario
ALUMNO2?
2. Escribe una secuencia de órdenes en la que se crea un usuario llamado ACTIVIDAD2 con
contraseña actividad2, con una cuota de 100K en el tablespace USERS. Se le asigna el privilegio
de iniciar sesión en Oracle y de crear tablas. Después conéctate con ese usuario y consulta los
privilegios del sistema que tiene asignados. Crea una tabla llamada TABLA (código
number(2)).Concede permiso SELECT sobre la tabla TABLA al usuario ALUMNO4 y consulta los
privilegios sobre objetos concedidos y recibidos por ALUMNO4.
3. Visualiza los usuarios que tienen privilegios SYSDBA y SYSOPER
4. Ver las características del tablespace del TRABAJO creado en los apuntes. ¿Qué significan la
información que recogen los atributos INC, BIG, FLA y ENC?
5. Se necesita mantener un registro de todos los usuarios que se han conectado en el día de hoy a
Oracle. Los datos que deben almacenarse en la tabla CONEXIONES son: nombre del usuario,
hora de inicio de sesión, tiempo trascurrido en minutos desde que la sesión se activó o si no está
activa, el tiempo que duró en minutos. Esta tarea se automatizará todos los días a las 2.00 am que
es cuando el volumen de usuarios conectados es menor y a las 12.00 pm que el volumen es
mayor. La tabla CONEXIONES debe especificar de alguna forma estos dos momentos de toma de
datos. Nota: Utiliza la vista v$session
6. Ejecuta uno de los procedimientos creados en los temas anteriores con el usuario MANUEL, ¿qué
ocurre?. Ahora, dale permisos para que pueda ejecutarlo, pero no para modificarlo. Intenta
modificar dicho procedimiento, ¿qué ocurre?.
7. Por cuestiones de seguridad vamos a crear el perfil INVITADO el cual se utilizará para los usuarios
que no pertenecen a nuestra empresa y van a acceder a nuestra BD, para ello se le permitirá un
tiempo de conexión de 5 minutos.
8. Por cuestiones de seguridad todos los empleados de nuestra empresa se les cerrará su sesión si
están durante 10 minutos inactivos, tendrán que modificar su contraseña una vez al mes, sólo se
permitirán dos intentos de acceso fallidos para la cuenta y sólo podrán conectarse durante 5
horas. El nombre del perfil será TRABAJADORES.
9. ¿Cuál la sentencia que hay que ejecutar para saber que usuarios están inactivos?
10. Al final de la jornada laboral, se debe desbloquear todos los usuarios bloqueados, estos se debe
almacenar en una tabla en la que además se recogerá cuando se bloquearon y cuando se
desbloquearon. Nota: los empleados de la empresa pertenecen al perfil TRABAJADORES como se
ha indicado anteriormente.
11. Por cuestiones de seguridad se debe llevar un control de los usuarios nuevos de nuestra empresa,
esta información se debe almacenar en una tabla donde se indicará el nombre del usuario y el
día que se creó. El día 22 de cada mes se debe almacenar y crear un listado de los usuarios que
se han dado de alta en el mismo. NOTA: recordad que todos nuestros empleados pertenecen al
perfil TRABAJADORES.
Aclaración sobre el ejercicio 11
Para poder hacer este ejercicio es necesario acceder a los datos de la tabla dba_users para
realizar la siguiente consulta:

Hasta aquí todo bien, el problema es cuando tenemos que crear un procedimiento, que necesite
dicha consulta, en este caso nos sale el error.

¿Cómo es posible dicho error si cuando se ha ejecutado la instrucción anterior no hemos tenido ningún
problema? Es debido a que las vistas que comienzan con “DBA_” son vistas de acceso restringido; son
vistas que requieren permisos del nivel SYS y dar permiso de este tipo a una aplicación, no es muy buena
idea.
Si el usuario con el que estamos trabajando no tiene acceso al esquema SYS, no podrá acceder a ellas.

Debido a su complejidad en la resolución, se plantea este ejercicio como OPTATIVO

La tabla DBA_USERS nos permite ver información importante sobre los usuarios de la BD y la vista user_users
describe al usuario actual. Más información en:

https://docs.oracle.com/database/121/REFRN/GUID-309FCCB2-2E8D-4371-9FC5-
7F3B10E2A8C0.htm#REFRN23302

También podría gustarte