Ejercicios para realizar en Oracle

hola a todos, aqui he transcrito de mis apuntes unos cuantos ejercicios para practicar un poco bajo el ORACLE XE 10g, ya sea en linux o en windows, las respuestas las tengo, pero las daré en otro POST saludos.

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
TAREA 1

– cambiar una tabla de tablespace

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
TAREA 2

– crear un nuevo usuario (2) que tenga los permisos de INSERT, UPDATE sobre la tabla persona
– crear un nuevo usuario (2) que tenga el permiso de ejecutar el procedimiento almacenado del usuario 1
– verificar en una vista del diccionario de datos, los indices creados por el usuario 1

## la tabla persona ############################

CREATE TABLE persona(
rut        NUMBER NOT NULL,
nombre         VARCHAR(40) NOT NULL,
paterno        VARCHAR(40) NOT NULL,
materno        VARCHAR(40) NOT NULL,
CONSTRAINT PK_PER PRIMARY KEY(rut));

## El Procedimiento ############################

CREATE PROCEDURE dos IS

a    DATE;

BEGIN

a:= 23456789;

END;
/

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
TAREA 3

– Consultar la vista para ver los permisos o privilegios otorgados de un user a otro
– Quitar los permisos de UPDATE sobre un objeto, verificar.
– Asignar un cuota para un usuario nuevo sobre un tablespace.
– Probar con asignacion de cuota 0 (no en system).
– Averiguar si puede dar el permiso sobre una sola columna, por ejemplo la direccion de una persona

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
TAREA 4

– Modificar el init.ora, por ejemplo el “DB_NAME = new”, subir la BD y verificar el parametro
– modifique otro parametro en ejecucion (ALTER SESS) y verificar el nuevo valor

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
TAREA 5

– crear un nuevo tablespace llamado “DATOS” de tamaño 8M
– Asignar un usuario nuevo “jperez” en ese tablespace
– Asignar una cuota de 2M al usuario nuevo y realizar un DML (INSERT) para copar esta cuota verifique el error ORA-xxxx entregado
– Realizar un DML (INSERT) masivo para copar el tamaño del tablespace, verifique el error ORA-xxxx entregado
– Ahora usted debe ampliar el tablespace agregando un nuevo DATAFILE asi: suponiendo que existe un DATAFILE datos01.dbf

Comments

  1. Anni Galicia says:

    Super interesantes los ejercicios planteados…me gustaría saber las respuestas =( Podria mandarlas por e-mail o decirme en que post fueron publicadas?

    Gracias y saludos!
    Ana Gabriela Galicia

  2. TAREA1

    ## aquí crearé primero un tablespace para luego cambiarla a este.
    CREATE TABLESPACE data01
    DATAFILE ‘H:/ORACLEXE/ORADATA/XE/DATA001.DBF’
    SIZE 50M AUTOEXTEND ON MAXSIZE 1G
    EXTENT MANAGEMENT LOCAL;

    ## Ahora basándome en la taba persona, haré un select a la vista USER_TABLES para verificar en que tablespace se encuentra originalmente

    SQL> SELECT table_name, tablespace_name, status FROM user_tables;

    ##ahora realizaré el cambio

    SQL> ALTER table persona MOVE TABLESPACE data01;

    ## y finalmente volvemos a realizar el select a la vista para verificar que esta correcto

    SQL> SELECT table_name, tablespace_name, status FROM user_tables;

    ________________________________________________________________________________
    TAREA2

    ## Creación de los dos usuarios
    SQL> CREATE USER usuario1 IDENTIFIED BY pass1;
    SQL> CREATE USER usuario2 IDENTIFIED BY pass2;

    ## Aquí les doy privilegios de conexión y de creación de tablas (solo al usuario 1)
    SQL> GRANT connect TO usuario1, usuario2;
    SQL> GRANT create table TO usuario1;

    ## Me conecto al usuario 1 para crear la tabla y asignarle privilegios al usuario 2 sobre ella
    SQL> CONNECT usuario1/pass1;
    SQL> SET SQLPROMPT “USR1> ”;
    USR1> CREATE TABLE persona(
    rut NUMBER,
    nombre VARCHAR(40) NOT NULL,
    paterno VARCHAR(40) NOT NULL,
    materno VARCHAR(40) NOT NULL,
    CONSTRAINT pk_per PRIMARY KEY(rut));
    USR1>CREATE PROCEDURE dos IS
    a    DATE;
    BEGIN
    a:= ’05-jun-1999′;
    END;
    /

    ## Aquí le asigno los privilegios de INSERT y UPDATE sobre la tabla persona al USUARIO2 desde el USUARIO1.
    USR1> GRANT insert, update ON persona TO usuario2;

    ## aquí le asigno permiso de ejecución del procedimiento almacenado al USUARIO2
    USR1>GRANT execute ON dos TO usuario2;

    PARA VER LOS INDICES CREADOS POR EL USUARIO 1 ES COSA DE VER LA VISTA LLAMADA “USER_INDEXES”, REALIZANDO UN “DESCRIBE” PODRÁS SABER LOS CAMPOS QUE CONTIENE DICHA VISTA, ESTO SE HACE DE LA SIGUIENTE MANERA:

    SQL> DESC user_indexes;

    CON ESO PODRÁS VER TODOS LOS CAMPOS.

    BUENO HASTA LA TAREA DOS POR HOY, SALUDOS

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: