Sunteți pe pagina 1din 3

Esquema del ejercicio

Debes conocer cmo crear usuarios y otorgarles permisos.


Vamos a trabajar accediendo a diferentes esquemas y dndoles permisos.
Debes escribir las instrucciones y preguntas en un script SQL y entregarlo en la
tarea correspondiente. Utiliza comentarios para explicar todo lo que quieras y para
responder a las preguntas de forma razonada.
Ten siempre en una ventana del navegador la referencia de SQL que puedes
encontrar en el siguiente enlace:
https://docs.oracle.com/cd/E11882_01/server.112/e41084/toc.htm
Necesitars ...

Conceptos sobre usuarios y permisos.


Cmo crear un tablespace.

1.

Conctate a la base de datos como system

2.

Comprueba que existe un tablespace denominado ESPACIO1. Si no es as, cralo.

3.

Crea un perfil denominado PERF_USUARIO con 3 intentos para bloquear la cuenta y


que se desconecte despus de 5 minutos de inactividad

4.

Crea un perfil denominado PERF_PROGRAMADOR con 4 sesiones por usuario y con


una password que caduca cada 30 das.

5.

Crea un ROLE R_USUARIO con permiso para conectarse y crear tablas.

6.

Crea dos usuarios denominados USUARIO1 y USUARIO2 con


perfil perf_usuario y contrasea usuario. Otrgales el ROLE R_USUARIO.
Asgneles Quota de 1 MB en el tablespace ESPACIO1. Haga que este sea un
tablespace por defecto

7.

En ambos usuarios crear la tabla TABLA2:


CREATE TABLE TABLA2
( CODIGO NUMBER ) ;

8.

Crea el procedimiento USUARIO1.PR_INSERTA_TABLA2.


CREATE OR REPLACE PROCEDURE PR_INSERTA_TABLA2 (
P_CODIGO IN NUMBER) AS
BEGIN
INSERT INTO TABLA2 VALUES (P_CODIGO);
END PR_INSERTA_TABLA2;

9.

Conctate como USUARIO1 y Ejectalo. Funciona?

10. Otrgale permisos a USUARIO2 para ejecutarlo


11. Conctate como USUARIO2 y Ejectalo. Funciona?

12. En este ltimo caso dnde se inserta el dato en la tabla de USUARIO1 o en


la de USUARIO2? Por qu?
13. Cambiar el procedimiento para que el INSERT lo haga desde un EXECUTE
IMMEDIATE
14. Ejecutar desde USUARIO1. Funciona?
15. Ejecutar desde USUARIO2. Funciona?
16. Crear otro procedimiento en USUARIO1:
CREATE OR REPLACE PROCEDURE PR_CREA_TABLA (
P_TABLA IN VARCHAR2, P_ATRIBUTO IN VARCHAR2) AS
BEGIN
EXECUTE IMMEDIATE 'CREATE TABLE '||P_TABLA||'('||P_ATRIBUTO||'
NUMBER(9))';
END PR_CREA_TABLA;
17. Ejecutar desde USUARIO1. Funciona?
18. Ejecutar desde USUARIO2. Funciona?
19. Vamos ahora a comprobar como est la instalacin de ORACLE que tenemos
delante. En primer lugar, en una configuracin ptima deberamos conocer
cuales son las cuentas que an tienen su password por defecto (lo cual es una
mala prctica desde el punto de vista de seguridad. Consulta para ello la vista
de diccionario DBA_USERS_WITH_DEFPWD. Ahora, responde: porque hay
tantas cuentas? tan insegura es ORACLE tras la instalacin? PISTA: Utiliza esa
vista en combinacin con otra que te permita estudiarlo.
20. Sabemos que existe un profile por defecto para la creacin usuarios. Vamos
a modificarlo de manera que todos los usuarios cumplan una poltica mnima
para la gestin de contraseas al ser creados.
- En primer lugar consulta cuales son los parmetros existentes del profile por
defecto (la vista DBA_PROFILES puede ayudarte). Cuales son?
- Cambia el nmero de logins fallidos A 3 y el tiempo de gracia a 5
- Con el usuario1 haz 3 logins fallidos. Que ocurre la cuarta vez?
- Desbloquea la cuenta (alter user...)
- A pesar de que hayamos cambiado el parmetro de failed_login_attempts, si
consultamos el parmetro de inicializacin sec_max_failed_login_attempts (show
parameter...) aparece un valor diferente. Significan por tanto diferentes cosas. Para
qu es til cada uno?
- Investiga si existe un forma de "quitar" los parmetros de los perfiles que hemos
creado al principio. Se puede hacer con todos los perfiles de oracle?
Una ltima pregunta. Algunos parmetros de inicializacin son dinmicos, y otros
estticos, como hablamos en clase. Cual es la diferencia entre ellos?
Si has llegado hasta aqu..ENHORABUENA!!