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!!