Sie sind auf Seite 1von 5

Academia de Software Libre

www.codigolibre.org

Oracle-Dba-I

Prctica 3 -> Oracle-Dba-1


Objetivo: Esta prctica usted est confirmara sus conocimientos adquirido sobre el tema usuario, perfil, privilegios y roles. 1. Busque en las siguientes vistas informacin sobre los usuarios: Solucion: Solucion: Solucion: Solucion: Solucion: Solucion: Solucion: SQL:> SQL:> SQL:> SQL:> SQL:> SQL:> SQL:>
SELECT SELECT SELECT SELECT SELECT SELECT SELECT * * * * * * * FROM FROM FROM FROM FROM FROM FROM dba_profiles; dba_roles; dba_users; dba_role_privs; dba_tab_privs; dba_sys_privs; all_users;

2. Conectarse con el usuario sys y desbloquear el usuario oe y asignarle el password luego conectarse con el y ver su catalogo de datos disponibles, cuando termine de esta operacin volver a bloquear: Solucion: Solucion: Solucion: Solucion: Solucion: Solucion: SQL:> SQL:> SQL:> SQL:> SQL:> SQL:>
CONNECT SYS/kikla AS SYSDBA; ALTER USER oe ACCOUNT UNLOCK; ALTER USER oe identified by arapepe; CONNECT oe/arapepe; SELECT * FROM cat; ALTER USER oe ACCOUNT LOCK;

3. Conectarse con el usuario system y crear un usuario llamado administrador que su clave ser suse, que su tablespace por defecto sea tbs_usuario y el tablespce tempotal tbs_tempusuario con una cuota de 512k en tbs_usuario: Observacion: Si los tablespace no estn creado Creelo. Solucion: SQL:> CREATE TABLESPACE tbs_usuario DATAFILE
'/opt/app/oradata/usuario/tbs_tempusuario01.dbf' SIZE 10M REUSE AUTOEXTEND ON NEXT 500K MAXSIZE 100M; Solucion: SQL:> CREATE TEMPORARY TABLESPACE tbs_tempusuario TEMPFILE '/opt/app/oradata/usuario/tbs_tempusuario01.dbf' SIZE 5M AUTOEXTEND ON;; Solucion: SQL:> CREATE USER administrador IDENTIFIED BY suse DEFAULT TABLESPACE tbs_usuario TEMPORARY TABLESPACE tbs_tempusuario QUOTA 512K ON tbs_usuario;

Nota: Realice el primer ejecicio para comprobar la creacin del usuario administrador.

Academia de Software Libre

www.codigolibre.org

Oracle-Dba-I

4. Realice una conexin con sqlplus utilizando el usuario administrador y explique el mensaje saliente:
(09:27:48)][oracle:~]$ sqlplus administrador/suse

5. Verificar que privilegios de sistema, roles sobre objetos tiene el usuario administrador: Solucion: SQL:> SELECT * FROM dba_role_privs WHERE grantee='ADMINISTRADOR'; Solucion: SQL:> SELECT * FROM dba_tab_privs WHERE grantee='ADMINISTRADOR'; Solucion: SQL:> SELECT * from dba_sys_privs where grantee='ADMINISTRADOR'; 6. Otorgar el privilegio CREATE SESSION al usuario administrador e intentar de nuevo la conexin sqlplus. Solucion: SQL:> GRANT CREATE SESSION TO administrador;
09:27:48)][oracle:~]$ sqlplus administrador/suse

7. Conectarse con el usuario adminsitrador y crear un usuario llamado caja01 y tu tablespace ser tbs_usuario por defecto y como temporal ser tbs_tempusuario. (09:30:03)][oracle:~]$ sqlplus administrador/suse Solucion: SQL:> show user; Solucion: SQL:> CREATE USER caja01 IDENTIFIED BY caja01
TABLESPACE tbs_usuario

DEFAULT TEMPORARY TABLESPACE tbs_tempusuario;

8. Conectarse con el usuario system y otorgar el privilegio CREATE USER al usuario administrador e intentar de nuevo el ejercicio anterior. Solucion: SQL:> CONN system/arapepe; Solucion: SQL:> GRANT CREATE USER TO administrador; Solucion: SQL:> CONN administrador/suse; 9. Verificar cuales usuario tienen asignado el privilegio de crear usuario, identidique las vistes que debe consultar. Solucion: SQL:> CONN system/arapepe; Solucion: SQL:> DESC dba_sys_privs Solucion: SQL:> SELECT * FROM dba_sys_privs WHERE privilege ='CREATE
USER';

Academia de Software Libre

www.codigolibre.org

Oracle-Dba-I

10.Hacer lo mismo para el privilegio create session. Solucion: SQL:> SELECT * FROM dba_sys_privs WHERE privilege ='CREATE
SESSION;

11. Verificar cuales usuario tienen asignado el privilegio de crear roles. Solucion: SQL:> SELECT * FROM dba_sys_privs WHERE privilege ='CREATE
ROLE';

12. Crear un rol llamado admin y asgnele los siguientes privilegios create session, create user y create role . Solucion: SQL:> CREATE ROLE admin; Solucion: SQL:> GRANT CREATE SESSION, CREATE USER, CREATE ROLE TO
admin;

Solucion: SQL:> GRANT ADMIN TO administrador; 13.Verificar los privilegios de sistema que tiene asignados de forma directa el usuario administrado, qutele esos privilegios y asignarle el rol admin. Solucion: SQL:> REVOKE CREATE SESSION FROM administrador; Solucion: SQL:> REVOKE CREATE USER FROM administrador; Solucion: SQL:> GRANT ADMIN TO administrador; 14.Crear, conectado con system, un usuario llamado cobro01 y si clave ser cobro01 no le asigne tablespace. Solucion: SQL:> CREATE USER cobro01 IDENTIFIED BY cobro01; 15. Consultar en las vistas correspondientes los tablespace y quota en cada uno de ellos, explique que paso con cobro01. Solucion: SQL:> SELECT substr(username,1,15) usuario,
DEFAULT_TABLESPACE ,TEMPORARY_TABLESPACE FROM dba_users WHERE username IN ('SYS','SYSTEM','ADMINISTRADOR','CAJA01','COBRO01');

Solucion: SQL:> SELECT substr(username,1,15) usuario,


tablespace_name, max_bytes FROM dba_ts_quotas WHERE username IN ('SYS','SYSTEM','ADMINISTRADOR','CAJA01','COBRO01');

16.Conectarse con el usuario caja01 y crear la siguiente tabla en el tablespace tbs_datos, si el tablespace no existe loko creelo, si no es posible favor explicar el porqu?. Solucion: SQL:> CREATE TABLESPACE tbs_datos DATAFILE
'/opt/app/oradata/usuario/tbs_datos01.dbf' SIZE 100M REUSE AUTOEXTEND ON NEXT 500K MAXSIZE 500M;

Academia de Software Libre

www.codigolibre.org

Oracle-Dba-I

Solucion: SQL:> CREATE TABLE CODIGOS (CODIGO varchar2(3),


DESCRIPCION varchar2(20)) TABLESPACE tbs_datos STORAGE (INITIAL 64K NEXT 64K MINEXTENTS 5 MAXEXTENTS 10);

17.Crear un rol llamado desarrollo y asignarle los permisos de "CREATE


SEQUENCE", "CREATE SESSION", "CREATE SYNONYM", "CREATE TABLE" y "CREATE VIEW" asignar al rol desarrollador los usuarios caja01 y

cobro01. Solucion: SQL:> CONN system/arapepe; Solucion: SQL:> CREATE ROLE desarollo; Solucion: SQL:> GRANT CREATE SEQUENCE, CREATE SESSION, CREATE
SYNONYM, CREATE TABLE, CREATE VIEW TO desarrollo; Solucion: SQL:> GRANT desarrollo TO caja01, cobro01;

Nota: Repita el ejercicio 16. 18.Asignar cuota ilimitada al usuario caja01 sobre el tablespace tbs_datos. Solucion: SQL:> ALTER USER caja01 QUOTA UNLIMITED ON tbs_datos; 19.Obtener informacin sobre los roles, privilegios de sistema, tablespace y cuotas para todos los usuarios. Solucion: SQL:> SELECT * FROM dba_role_privs; Solucion: SQL:> SELECT * FROM dba_sys_privs; Solucion: SQL:> SELECT USERNAME , TABLESPACE_NAME , BYTES FROM
dba_ts_quotas;

20.Verificar cuales usuarios y roles tienes asignados el privilegio ALTER USER. Solucion: SQL:> SELECT * FROM dba_sys_privs WHERE privilege='ALTER
USER';

21.Abrir dos sesin una con el usuario adminsitrador y otra con el usuario cobro01, luego intente borrar el usuario cobro01, explique el por qu no pudo borrar cobro01. Solucion: Solucion: Solucion: Solucion: SQL:> SQL:> SQL:> SQL:>
conn adminsitrador/arapepe; conn adminsitrador/arapepe; shutdown abort DROP USER cobro01;

22.Asignar el permiso DROP USER al rol admin. Solucion: SQL:> GRANT DROP USER to admin;

Academia de Software Libre

www.codigolibre.org

Oracle-Dba-I

23.Crear un perfil llamado desarrollo con las siguientes especificaciones. Sessions_per_user 2 Cpu_per_session unlimited Cpu_per_call 6000 Connect_time 480 Idle_time 2 Failed_login_attempts 2 Password_life_time 120 Solucion: SQL:> CREATE PROFILE desarrollo LIMIT sessions_per_user 2
cpu_per_session UNLIMITED cpu_per_call 6000 connect_time 480 idle_time 2 failed_login_attempts 2 password_life_time 120;

24.Asignar el perfil creado en el ejercicio anterio a los usuario cobro01 y caja01. Solucion: SQL:> ALTER USER caja01 PROFILE desarrollo; Solucion: SQL:> ALTER USER cobro01 PROFILE desarrollo;

25.Intentar la conexin en dos Shell con el usuario caja01, utilice una contrasea incorrecta, comprobar si la cuenta ha sido bloqueada.
09:27:48)][oracle:~]$ sqlplus caja01/caja 09:27:48)][oracle:~]$ sqlplus caja01/caja

Solucion: SQL:> select username, lock_date from dba_users where


username like 'CAJA%';

26. Modificar los valores del perfil DEFAULT segn indica los siguientes datos. Sessions_per_user 5 Cpu_per_session unlimited Cpu_per_call 6000 Connect_time 480 Idle_time 60 Failed_login_attempts 3 Password_life_time 180 Solucion: SQL:> alter profile default limit sessions_per_user 5
cpu_per_session unlimited cpu_per_call 6000 connect_time 480 idle_time 60 failed_login_attempts 3 password_life_time 180;