Sei sulla pagina 1di 8

/*******************************************************************************

****
*Universidad Mariano Galvez de Guatemala
*
*Curso: Diseo de Base de Datos
*
*Clase No.: 7
*
*Prctica de Laboratorio
*
*Instrucciones: Desarrollar cada paso individualmente
*
********************************************************************************
****
********************************************************************************
****
*Tema 1
*
*--***Creacin de Usuario***--
*
*NOTA: reemplazar el nombre del usuario "USUARIO_ESTUDIANTE"
*
*Paso 1 : Se crea un usuario, reemplazar el nombre del usuario y la contrasea
*
*Paso 2 : Se le concede al usuario permiso para conectarse a la bd,
*
*Paso 3 : Se le concede al usuario el rol de dba, reemplazar el nombre del usuar
io *
*Paso 4 : Conectarse a la base de datos con el usuario recien creado
*
*Paso 5 : Crear tabla
*
********************************************************************************
****/
--PASO 1
--Se crea un usuario, reemplazar el nombre del usuario y la contrasea
CREATE USER "USUARIO_ESTUDIANTE" PROFILE "DEFAULT"
IDENTIFIED BY "CONTRASENA_ESTUDIANTE" DEFAULT TABLESPACE "USERS"
ACCOUNT UNLOCK;
/* RESULTADO
User created.
0,28 seconds
*/
--PASO 2
--Se le concede al usuario permiso para conectarse a la base de datos
GRANT "CONNECT" TO "USUARIO_ESTUDIANTE";
/* RESULTADO
Statement processed.
0,04 seconds
*/
--PASO 3
--Se le concede al usuario el rol de dba, reemplazar el nombre del usuario
GRANT "DBA" TO "USUARIO_ESTUDIANTE";
/* RESULTADO
Statement processed.
0,00 seconds
*/
--PASO 4
--Conectarse a la base de datos con el usuario recien creado (puede ser en una i
nstancia nueva)
CONNECT USUARIO_ESTUDIANTE/CONTRASENA_ESTUDIANTE
--PASO 5
--crear la tabla
CREATE TABLE "USUARIO_ESTUDIANTE"."EMPLEADO" ("NUM_EMP" NUMBER(10) NOT NULL,
"NOMBRE_EMP" VARCHAR2(30) NOT NULL, "TAREA" VARCHAR2(50) NOT
NULL, "JEFE" NUMBER(10) NOT NULL, "FECHA_ALTA" DATE NOT NULL,
"SALARIO" NUMBER(10, 2) NOT NULL, "NUM_DEPTO" NUMBER(10) NOT
NULL, PRIMARY KEY("NUM_EMP"))
TABLESPACE "SYSTEM";
/* RESULTADO
Table created.
0,28 seconds
*/
/*******************************************************************************
****
*Tema 2
*
*--***USUARIOS***--
*
*Paso 1 : Visualizar los usuarios creados
*
*Paso 2 : Visualizar el tablespace que tiene asignado cada usuario
*
*Paso 3 : Modificar TABLESPACE (ver resultado)
*
*Paso 4 : Cambio de contrasea (ver resultado)
*
*Paso 5 : Visualizamos tablas de USUARIO_ESTUDIANTE (importante que se tenga
*
* alguna tabla asociada)
*
*Paso 6 : Borrar usuario (analizar efecto entre las 2 sentencias
*
*NOTA: Conect puede ser en una nueva instancia
*
********************************************************************************
****/
--PASO 1
--Visualizar los usuarios creados
SELECT * FROM ALL_USERS;
--RESULTADO
--USUARIO_ESTUDIANTE, ID, FECHA CREACION
--PASO 2
--Visualizar el tablespace que tiene asignado cada usuario
SELECT USERNAME, DEFAULT_TABLESPACE FROM DBA_USERS;
--PASO 3
--Modificar TABLESPACE (ver resultado)
CONNECT USUARIO_ESTUDIANTE/ CONTRASENA_ESTUDIANTE
ALTER USER USUARIO_ESTUDIANTE DEFAULT TABLESPACE USERS;
ALTER DATABASE
DATAFILE 'C:\ORACLE\APP\SOLO\ORADATA\GENESIS\USERS01.DBF'
RESIZE 50M;
--PASO 4
--Cambio de contrasea (ver resultado)
ALTER USER USUARIO_ESTUDIANTE IDENTIFIED BY "OTRA_CONTRASENA";
/* RESULTADO
User altered.
0,20 seconds
*/
CONNECT USUARIO_ESTUDIANTE/ CONTRASENA_ESTUDIANTE -- CREDENCIALES NO VALIDAS
CONNECT USUARIO_ESTUDIANTE/ "OTRA_CONTRASENA" -- INGRESO VALIDO
--PASO 5
--Visualizamos tablas de USUARIO_ESTUDIANTE (importante que se tenga
--alguna tabla asociada)
SELECT OWNER, TABLE_NAME FROM DBA_TABLES WHERE OWNER = 'USUARIO_ESTUDIANTE';
--PASO 6
--Borrar usuario (analizar efecto entre las 2 sentencias)
DROP USER 'USUARIO_ESTUDIANTE'; --ORA-01922: se debe especificar CASCADE para b
orrar USUARIO_ESTUDIANTE
DROP USER 'USUARIO_ESTUDIANTE' CASCADE; -- Revisar apostrofes
/* RESULTADO
User dropped.
5,94 seconds
*/
/*******************************************************************************
*****
*Tema 3
*
*--***PRIVILEGIOS***--
*
*Paso 1 : Crear otra vez usuario borrado, hacer otra vez lo de tema 1
*
*Paso 2 : Crear otros 2 usuarios ficticios, solo repetir paso 1 y 2 de tema 1,
*
* con informacion diferente de usuario, USUARIO2 y USUARIO3
*
*Paso 3 : Conceder privilegios DE select, insert a USUARIO2
*
*Paso 4 : Hacer pruebas de los privilegios
*
*Paso 5 : Dar privilegios a USUARIO3 para insertar en tabla
*
*Paso 6 : Hacer prueba de los privilegios
*
*Paso 7 : Retirar privilegios
*
*Paso 7 : Revisar privilegios
*
********************************************************************************
****/
--PASO1
--Crear otra vez usuario y pasos del tema 1
CREATE USER "USUARIO_ESTUDIANTE" PROFILE "DEFAULT"
IDENTIFIED BY "CONTRASENA_ESTUDIANTE" DEFAULT TABLESPACE "USERS"
ACCOUNT UNLOCK;
GRANT "CONNECT" TO "USUARIO_ESTUDIANTE";
GRANT "DBA" TO "USUARIO_ESTUDIANTE";
CONNECT USUARIO_ESTUDIANTE/CONTRASENA_ESTUDIANTE;
CREATE TABLE "USUARIO_ESTUDIANTE"."EMPLEADO" ("NUM_EMP" NUMBER(10) NOT NULL,
"NOMBRE_EMP" VARCHAR2(30) NOT NULL, "TAREA" VARCHAR2(50) NOT
NULL, "JEFE" NUMBER(10) NOT NULL, "FECHA_ALTA" DATE NOT NULL,
"SALARIO" NUMBER(10, 2) NOT NULL, "NUM_DEPTO" NUMBER(10) NOT
NULL, PRIMARY KEY("NUM_EMP"))
TABLESPACE "USERS";
INSERT INTO "USUARIO_ESTUDIANTE"."EMPLEADO" VALUES (4,'ALBERTO RODRIGUEZ','JEFE
DE TELECOMUNICACION',0, SYSDATE-300,8000,1);
--PASO 2
--Crear otros 2 usuarios ficticios, solo repetir paso 1 y 2 de tema 1
-- creando usuario2
CREATE USER "USUARIO2" PROFILE "DEFAULT"
IDENTIFIED BY "USUARIO2" DEFAULT TABLESPACE "USERS"
ACCOUNT UNLOCK;
/* RESULTADO
User created.
0,01 seconds
*/
GRANT "CONNECT" TO "USUARIO2";
/* RESULTADO
Statement processed.
0,00 seconds
*/
-- creando usuario3
CREATE USER "USUARIO3" PROFILE "DEFAULT"
IDENTIFIED BY "USUARIO3" DEFAULT TABLESPACE "USERS"
ACCOUNT UNLOCK;
/* RESULTADO
User created.
0,04 seconds
*/
GRANT "CONNECT" TO "USUARIO3";
/* RESULTADO
Statement processed.
0,00 seconds
*/
--PASO 3
--Conceder privilegios DE select, insert a USUARIO2
GRANT SELECT, INSERT ON "USUARIO_ESTUDIANTE"."EMPLEADO" TO USUARIO2;
/* RESULTADO
Statement processed.
0,05 seconds
*/
--PASO 4
--Hacer pruebas de los privilegios
CONNECT USUARIO2/USUARIO2
SELECT * FROM USUARIO_ESTUDIANTE.EMPLEADO;
-- 1 ROW RESULT
CONNECT USUARIO3/USUARIO3
SELECT * FROM USUARIO_ESTUDIANTE.EMPLEADO;
-- ORA-00942: la tabla o vista no existe
--PASO 5
--Dar privilegios a USUARIO3 para insertar en tabla
CONNECT USUARIO_ESTUDIANTE/ CONTRASENA_ESTUDIANTE
GRANT INSERT ON "USUARIO_ESTUDIANTE"."EMPLEADO" TO USUARIO3;
--PASO 6
--Hacer prueba de los privilegios
CONNECT USUARIO3/USUARIO3
SELECT * FROM USUARIO_ESTUDIANTE.EMPLEADO;
-- ORA-01031: privilegios insuficientes
INSERT INTO USUARIO_ESTUDIANTE.EMPLEADO VALUES (1,'JUAN GUTIERREZ','JEFE DEL PRO
YECTO',0, SYSDATE-365,10000,1);
/* RESULTADOS
1 fila(s) insertada(s).
0,03 segundos
*/
--PASO 7
-- Retirar privilegios
CONNECT USUARIO_ESTUDIANTE/ CONTRASENA_ESTUDIANTE
REVOKE INSERT ON "USUARIO_ESTUDIANTE"."EMPLEADO" FROM USUARIO3;
/* RESULTADO
Statement processed.
0,00 seconds
*/
REVOKE ALL ON "USUARIO_ESTUDIANTE"."EMPLEADO" FROM USUARIO2;
/* RESULTADO
Statement processed.
0,03 seconds
*/
/*CON OTRO USUARIO*/
REVOKE DROP USER FROM USUARIO_ESTUDIANTE;
--PASO 8
-- Revisando retiro de privilegios
CONNECT USUARIO3/USUARIO3
INSERT INTO "USUARIO_ESTUDIANTE"."EMPLEADO" VALUES (3,'PEDRI GUTIERREZ','JEFE DE
ANALISTAS',0, SYSDATE-365,10000,1);
/*ORA-00942: la tabla o vista no existe
*/
CONNECT USUARIO2/USUARIO2
SELECT * FROM USUARIO_ESTUDIANTE.EMPLEADO;
/* ORA-00942: la tabla o vista no existe */
/*******************************************************************************
****
*Tema 3
*
*--***ROLES***--
*
*Paso 1 : Crear un rol
*
*Paso 2 : Asignamos privilegios al rol
*
*Paso 3 : Se concede el rol a Usuario3
*
*Paso 4 : Hacer pruebas de los privilegios
*
********************************************************************************
****/
--PASO 1
--Crear un rol
CREATE ROLE PERMISO;
/* RESULTADO
Role created.
0,01 seconds
*/
--PASO 2
--Asignamos privilegios al rol
GRANT SELECT ON "USUARIO_ESTUDIANTE"."EMPLEADO" TO PERMISO;
GRANT INSERT ON "USUARIO_ESTUDIANTE"."EMPLEADO" TO PERMISO;
GRANT CREATE SESSION TO PERMISO;
/* RESULTADO
Statement processed.
0,00 seconds
*/
--PASO 3
--Se concede el rol a Usuario3
GRANT PERMISO TO USUARIO3;
/* RESULTADO
Statement processed.
0,00 seconds
*/
--PASO 4
--Hacer pruebas de los privilegios
CONNECT USUARIO3/USUARIO3
SELECT * FROM USUARIO_ESTUDIANTE.EMPLEADO;
INSERT INTO "USUARIO_ESTUDIANTE"."EMPLEADO" VALUES (2,'PEDRO RODRIGUEZ','JEFE DE
L INVESTIGACION',1, SYSDATE-300,8000,1);
/* RESULTADO
- CONSULTA REALIZADA
- INSERT REALIZADO
*/
/*******************************************************************************
****
*Tema 4
*
*--***PERFILES***--
*
*Paso 1 : Crear un perfil con limitacion de sesiones y 2 minutos de conexion
*
*Paso 2 : Crear otro usuario con el perfil creado
*
*Paso 3 : Seteamos el uso de perfiles en el sistema
*
*Paso 4 : Abrir 2 sesiones de SQL PLUS y nos conectamos con PRUEBA a las 2
*
*Paso 5 : Dejamos pasar mas de 2 minutos y corremos un query
*
*Paso 6 : Borramos el perfil
*
********************************************************************************
****/
--PASO 1
--Crear un perfil con limitacion de sesiones y 2 minutos de conexion
CREATE PROFILE PERFILL LIMIT SESSIONS_PER_USER 1 CONNECT_TIME 2;
/*
Statement processed.
0,00 seconds
*/
--PASO 2
--Crear otro usuario con el perfil creado
CREATE USER "PRUEBAX" PROFILE "PERFILL"
IDENTIFIED BY "PRUEBAX" DEFAULT TABLESPACE "USERS"
ACCOUNT UNLOCK;
/* RESULTADO
User created.
0,01 seconds
*/
GRANT CONNECT TO PRUEBAX;
/*
Statement processed.
0,00 seconds
*/
GRANT SELECT ON "USUARIO_ESTUDIANTE"."EMPLEADO" TO PRUEBAX;
/*
Statement processed.
0,00 seconds
*/
--PASO 3
--Seteamos el uso de perfiles en el sistema
ALTER SYSTEM SET RESOURCE_LIMIT = TRUE;
/*
Statement processed.
0,00 seconds
*/
--PASO 4
--Abrir 2 sesiones de SQL PLUS y nos conectamos con PRUEBA a las 2
--ABRIMOS 2 SESIONES DE SQL PLUS
--INTENTAMOS CONECTARNOS CON EL USUARIO PRUEBA EN LAS 2
--PASO 5
--Dejamos pasar mas de 2 minutos y corremos un query en cada instancia abierta
SELECT * FROM USUARIO_ESTUDIANTE.EMPLEADO;
--PASO 6
--Borramos el perfil
DROP PROFILE PERFILL;
/*ORA-02382: el perfil PERFILL tiene usuarios asignados, no puede borrarlo sin C
ASCADE*/
DROP PROFILE PERFILL CASCADE;

Potrebbero piacerti anche