Vous êtes sur la page 1sur 5

Academia de Software Libre

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 y roles.

1. Busque en las siguientes vistas información sobre los usuarios:

Solucion: SQL:> SELECT * FROM dba_profiles; Solucion: SQL:> SELECT * FROM dba_roles; Solucion: SQL:> SELECT * FROM dba_users; Solucion: SQL:> SELECT * FROM dba_role_privs; Solucion: SQL:> SELECT * FROM dba_tab_privs; Solucion: SQL:> SELECT * FROM dba_sys_privs; Solucion: SQL:> SELECT * FROM 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 operación volver a bloquear:

Solucion: SQL:> CONNECT SYS/kikla AS SYSDBA; Solucion: SQL:> ALTER USER oe ACCOUNT UNLOCK; Solucion: SQL:> ALTER USER oe identified by arapepe; Solucion: SQL:> CONNECT oe/arapepe; Solucion: SQL:> SELECT * FROM cat; Solucion: SQL:> 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 están 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 creación del usuario administra- dor.

Academia de Software Libre

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 DEFAULT TABLESPACE tbs_usuario 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

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:> 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, quítele 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

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 información 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 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

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