Academia de Software Libre
www.codigolibre.org
Oracle-Dba-I
Práctica 3 -> Oracle-Dba-1 Objetivo: Esta práctica usted está confirmara sus conocimientos adquirido sobre el tema usuario, perfil, privilegios privilegios y roles. roles. 1. Busque en las siguientes vistas información sobre los usuarios:
Solucion: SQL:> Solucion: SQL:> Solucion: SQL:> Solucion: SQL:> Solucion: SQL:> Solucion: SQL:> Solucion: SQL:>
SELECT * FROM dba_profiles ; SELECT * FROM dba_roles ; SELECT * FROM dba_users; SELECT * FROM dba_role_privs; SELECT * FROM dba_tab_privs; SELECT * FROM dba_sys_privs; SELECT * FROM all_users;
2. Conectarse con el usuario sys y desbloquear el usuario oe y asignarle el password luego conectarse conectarse con el y ver su catalogo de datos disponibles, cuando termine de esta operación volver a bloquear:
Solucion: SQL:> Solucion: SQL:> Solucion: SQL:> Solucion: SQL:> Solucion: SQL:> Solucion: SQL:>
CONNECT SYS/kikla AS SYSDBA; ALTER USER oe ACCOUNT UNLOCK; ALTER USER oe identified by arapepe; arapepe; CONNECT oe/ oe/arapepe; arapepe; SELECT * FROM cat; 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 tbs_tempusuario con una cuota de 512k en tbs_usuario:
Observacion: Si los tablespace no están creado… Creelo. Solucion: SQL:>
CREATE TABLESPACE tbs_usuario DATAFILE '/opt/app/oradata/usuario/tbs_tempusuario01.dbf' SIZE 10 10M M REUSE AUTOEXTEND ON NEXT 500 500K K MAXSIZE 100 100M M;
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 512 512K K ON tbs_usuario; tbs_usuario;
comprobar la creación del usuario administraNota: Realice el primer ejecicio para comprobar dor.
Academia de Software Libre
www.codigolibre.org
Oracle-Dba-I
4. Realice una conexión 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 conexión 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 USER';
WHERE privilege ='CREATE
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 asígnele los siguientes privilegios “create session”, “create user” y “create role” .
Solucion: SQL:> Solucion: SQL:>
CREATE ROLE admin; 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, quítele esos privilegios y asignarle el rol admin.
Solucion: SQL:> Solucion: SQL:> Solucion: SQL:>
REVOKE CREATE SESSION FROM administrador ; REVOKE CREATE USER FROM administrador; 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' ON NEXT 500K MAXSIZE 500M;
SIZE 100M REUSE AUTOEXTEND
Academia de Software Libre
Solucion: SQL:>
www.codigolibre.org
Oracle-Dba-I
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 información sobre los roles, privilegios de sistema, tablespace y cuotas para todos los usuarios.
Solucion: SQL:> Solucion: SQL:> Solucion: SQL:>
SELECT * FROM dba_role_privs; SELECT * FROM dba_sys_privs; 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 sesión 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: SQL:> conn adminsitrador/arapepe; Solucion: SQL:> conn adminsitrador/arapepe; Solucion: SQL:> shutdown abort Solucion: SQL:> 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:> Solucion: SQL:>
ALTER USER caja01 PROFILE desarrollo ; ALTER USER cobro01 PROFILE desarrollo ;
25. Intentar la conexión en dos Shell con el usuario caja01, utilice una contraseña 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 según 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;