3
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. xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxx TAREA 1 - cambiar una tabla de tablespace xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxx 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; / xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxx 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

Ejercicios TableSpace Oracle

Embed Size (px)

Citation preview

Page 1: Ejercicios TableSpace 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.

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxTAREA 1

- cambiar una tabla de tablespace

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxTAREA 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;/

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxTAREA 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

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxTAREA 4

Page 2: Ejercicios TableSpace Oracle

- 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

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxTAREA 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

TAREA1

## aquí crearé primero un tablespace para luego cambiarla a este.CREATE TABLESPACE data01DATAFILE ‘H:/ORACLEXE/ORADATA/XE/DATA001.DBF’SIZE 50M AUTOEXTEND ON MAXSIZE 1GEXTENT 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 usuariosSQL> 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 ellaSQL> 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 ISa    DATE;BEGINa:= ’05-jun-1999′;END;/

Page 3: Ejercicios TableSpace Oracle

## 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 USUARIO2USR1>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