You are on page 1of 8

Unidad11. Usuarios, perfiles, privilegios y roles.

1. Conectarse como usuario SYSTEM a la base y crear un usuario llamado


administrador autentificado por la base de datos con contrasea admin. Indicar como
"tablespace" por defecto USERS y como "tablespace" temporal TEMP; asignar una
cuota de 500K en el "tablespace" USERS.
Consulta despus las vistas all_users y dba_users e indica la informacin que aparece
sobre l.
CREATE USER ADMINISTRADOR IDENTIFIED BY ADMIN
DEFAULT TABLESPACE USERS
TEMPORARY TABLESPACE TEMP
QUOTA 500K ON USERS;
SQL>
SELECT
*
USERNAME='ADMINISTRADOR';

FROM

all_USERS

WHERE

2. Abrir una sesin sqlplus o una nueva conexin en sql developer e intentar conectarse
como usuario administrador, qu sucede?, por qu?.
Error: ORA-01045: user ADMINISTRADOR lacks CREATE SESSION privilege;
logon denied. El usuario no tiene privilegios para conectarse a la BD
3. Averiguar qu privilegios de sistema, roles y privilegios sobre objetos tiene
concedidos el usuario administrador consultando las vistas dba_role_privs,
dba_tab_privs, dba_sys_privs (busca en Internet qu contienen cada una de estas vistas)
select * from dba_role_privs where grantee='ADMINISTRADOR';
no rows selected
select * from dba_tab_privs where grantee='ADMINISTRADOR';
no rows selected
select * from dba_sys_privs where grantee='ADMINISTRADOR';
no rows selected
4. Otorgar el privilegio CREATE SESSION al usuario administrador e
intentar de nuevo la conexin sqlplus o sqldeveloper.
SQL> grant create session to administrador;
Grant succeeded.
5a. Modifica la contrasea del usuario administrador por admi, desconecta este usuario
y vuelve a acceder a Oracle con el usuario administrador. Comprueba que se ha
modificado la contrasea.

Alter user administrador


Identified by admin

Unidad11. Usuarios, perfiles, privilegios y roles.


5b. Modifica el usuario administrador de forma que su cuenta est bloqueada. Accede
de nuevo con este usuario y comprueba que efectivamente no puede acceder a su
cuenta.
Alter user administrador
Account lock
5c Accede ahora al entreprise manager como system y desbloquea en modo grfico la
cuenta administrador.

6. Conectarse como usuario administrador y crear un usuario llamado


prueba00 que tenga como "tablespace" por defecto USERS y como
"tablespace" temporal TEMP; asignar una cuota de 500K en el "tablespace" USERS.
Es posible hacerlo?.
create user prueba00 identified by prueba00
default tablespace users
temporary tablespace temp
quota 500k on users
create user prueba00 identified by prueba00
ERROR at line 1:
ORA-01031: insufficient privileges
7. Conectado como usuario SYSTEM, otorgar el privilegio create user al usuario
administrador y repetir el ejercicio anterior.
SQL> grant create user to administrador;
Grant succeeded.
SQL> create user prueba00 identified by prueba00
default tablespace users
temporary tablespace temp
quota 0k on users

8. Crea un nuevo usuario prueba1 con clave prueba1 y tablespace users. Concdele el
privilegio de connectarse a la BD. Trata de crear una tabla Has podido? Porqu?
Concedele el privilegio CREATE TABLE y trata de crear de nuevo la tabla Has
podido?
create user prueba1
identified by prueba1
default tablespace users;
grant create session to prueba1;
grant create table to prueba1;
no puede crear tabla todavia ya que al crear el usuario no se le ha
asignado cuota.

Unidad11. Usuarios, perfiles, privilegios y roles.


9. Asgnale una cuota de 500 K al usuario prueba1 y comprueba que ya puede crear una
tabla
Alter user prueba1
Quota 500 k on users
9b. Como usuario prueba1, modifica su propia contrasea a pru1. Puede modificar el
propio usuario prueba1 su cuota? Qu privilegio necesita? Asgnale dicho privilegio
desde el enterprise manager y comprueba que ahora el usuario prueba1 puede
modificarse a s mismo su cuota por ejemplo asigndole una quota de 600K
Alter user prueba1 identified pru1;
Alter user prueba1 default quota 600K on users;
No permite, hay que darle el privilegio, ALTER USER
10. Como usuario administrador crea un nuevo usuario llamado ora1 con contrasea
ora1 cuota 500k y espacios users y temp. Este nuevo usuario deber poder conectarse a
la BD y crear tablas. Crea una tabla para el usuario ora1Puedes insertar datos o
manipular la tabla ?. Puedes crear procedimientos, triggers, ? Indica qu privilegios
necesitarias.
create user ora1 identified by ora1
default tablespace users
temporary tablespace temp
quota 500k on users;
grant create session to ora1;
grant create table to ora1;
Se pueden insertar datos no se pueden crear procedimientos ni triggers, hacen
falta los privilegios create trigger, create procedure,
Nota:para poder crear funciones basta dar el rol connect
11. Con el usuario administrador borra el usuario ora1. Indica los pasos que has tenido
que realizar para poder hacerlo.
El usuario administrador deber tener privilegios Drop user. Para borrar el
usuario ora1 deber estar desconectado y ejecutaremos como administrador drop
user ora1 cascade ya que el usuario ora1 tienen objetos creados
Grant drop user to administrador;
Drop user prueba1;
12. Averiguar que usuarios de la base de datos tienen asignado el privilegio
create user de forma directa, para ello consulta la vista dba_sys_privs observa sus
campos y qu quiere decir cada uno y ejecuta la consulta adecuada sobre esta vista.
Qu significa la opcin ADMIN OPTION?
SQL> select * from dba_sys_privs where privilege ='CREATE USER';
3

Unidad11. Usuarios, perfiles, privilegios y roles.

13. Hacer lo mismo para el privilegio create session.

14. Desbloquea desde el EM el usuario hr de la bd y ponle como contrasea hr.


Consulta las tablas de las que dispone este usuario.
15.Concede permisos al usuario oracle4 para ejecutar consultas sobre la tabla employees
del usuario hr (Crea previamente el usuario oracle4 con clave a 500k y tablespace users
y temp, concdele privilegios para conectarse y crear tablas, crea una tabla en el usuario
oracle4 llamala tabla1)
Grant dba to administrador;
grant select on hr.employees to oracle4 como usuario system
grant select on employees to oracle4 como usuario hr;
16.Consulta los datos de la tabla employees (habindote conectado como usuario
oracle4)
select * from hr.employees;
17.Consulta los datos de la tabla countries de hr Has podido? Por qu?
No porque no tienes permiso de consulta
18.Concede permisos a oracle4 para insertar registros en la tabla countries de hr
grant insert on hr.countries to oracle4
19.Inserta el pas Turqua con cdigo TR de Asia en la tabla countries como usuario
oracle4
insert into hr.countries values('TR','Turquia',3)
20.Trata de borrar como usuario oracle4 la fila que has insertado Qu mensaje
obtienes? Otorga a hr privilegios para poder borrar sobre la tabla countries
delete from hr.paises where country_id='TR'. Obtenemos el mensaje
privilegios insuficientes
grant delete on hr.countries to oracle4

21.Crea la tabla pas en oracle4 como copia de countries desde el usuario HR


Create table pais as select * from hr.countries;
22.Concede al usuario oracle4 permisos para borrar tablas de cualquier usuario. Crea
una tabla en HR, por ejemplo una copia de jobs y llmala jobs2. Borrla ahora desde el
usuario oracle4
grant drop any table to oracle4 (como system)
4

Unidad11. Usuarios, perfiles, privilegios y roles.


create table jobs2 as select * from jobs (como HR)
drop table hr.jobs2 (como oracle4)
22.a Oracle4 concede a todos los usuarios (actuales y futuros) cualquier tipo de
privilegio sobre la tabla que has creado en el ejercicio15.
Grant all on tabla1 to public
23.b crea en oracle4 una segunda tabla, tabla2 con 3 campos (campo1, campo2 y
campo3) e introduce dos filas de datos. Concede al usuario hr permisos para modificar
solo la columna campo2. Trata ahora de modificar como usuario hr dos columnas de esa
tabla, permite hacerlo?
grant update(id2) on oracle4.tabla2 to hr
no permite

24.Concede permisos al usuario oracle4 para que a su vez pueda crear usuarios as como
darles cualquier privilegio.
grant create user, grant any privilege to oracle4
25.Conctate como usuario oracle4 y crea el usuario oracle4a con contrasea oracle4a
espacio de tablas users y sin lmite de cuota. Asgnale permisos de ejecucin de
consultas sobre la tabla jobs del usuario hr. Concede ahora privilegio de modificacin
sobre la columna country_name de la tabla countries a todos los usuarios
create user oracle4a
identified by oracle4a
default tablespace usuarios
quota unlimited on usuarios;
Grant select on hr.jobs to oracle4a conectado como system
Grant update (country_name) on hr.countries to public
26. Comprueba desde el usuario hr qu permisos ha concedido sobre sus tablas a los
dems usuarios. Comprueba desde el usuario oracle4 qu permisos ha recibido sobre las
tablas de otros usuarios (usa la vista user_tab_privs). Recuerda que GRANTOR es el
usuario que ha dado los privilegios y GRANTEE el que los ha recibido.
Select * from user_tab_privs
27. Consulta los privilegios de sistema asignados a oracle4a ( usa la vista
dba_sys_privs)
select * from dba_sys_privs where grantee='ORACLE4A'

Unidad11. Usuarios, perfiles, privilegios y roles.


28.Estando conectado como usuario administrador probar a crear un rol llamado
administrador, qu ocurre?.
SQL> connect administrador
Enter password:
Connected.
SQL> create role administrador;
create role administrador
*
ERROR at line 1:
ORA-01031: insufficient privileges
29.Idem estando conectado como usuario SYSTEM, qu sucede?, por qu?.
SQL> connect system
Enter password:
Connected.
SQL> create role administrador;
create role administrador
*
ERROR at line 1:
ORA-01921: role name 'ADMINISTRADOR' conflicts with another user or role
name
30.Crear un rol llamado ADMIN, asignarle los privilegios create session,
create user y CREATE ROLE. Asignarlo al usuario administrador.
SQL> create role admin;
SQL> grant create session, create user, create role to admin;
SQL> grant admin to administrador;
31.Consultar los privilegios de sistema que tiene asignados de forma directa el
usuario administrador, revocarlos y asignarle el rol admin..
SQL> select * from dba_sys_privs where grantee ='ADMINISTRADOR'
SQL> revoke create session from administrador;
SQL> revoke create user from administrador
SQL> grant admin to administrador;
32. Crea el usuario usuario1 y asgnale el role connect y resource. Comprueba despus
en la vista correspondiente que efectivamente tiene esos roles. Comprueba tambin
desde el EM que el usuario tiene marcados esos roles.
Grant connect, resource to usuario1
Select * from dba_role_privs where grantee=USUARIO1

33. Crea el rol opera_jobs de modo que este rol adjudique permisos de seleccin,
insercin y borrado sobre la tabla jobs del usuario HR. Y adems tenga permisos para
crear usuarios en la base de datos. Comprueba en las correspondientes vistas los
permisos que tiene asociados el rol opera_jobs
Create role opera_jobs;
Grant select, insert, delete on hr.jobs to opera_jobs;
Grant create user to opera_jobs
6

Unidad11. Usuarios, perfiles, privilegios y roles.


34. Crea un usuario oracle5 con contrasea oracle5, espacio de tablas usuarios y sin
lmite de cuota. Asgnale a oracle5 y oracle4 el rol opera jobs(en una sola sentencia).
Accede con el usuario oracle5 y comprueba que puedes insertar una la fila ('SA_TA',
'XXXXX', 200,9000) en la tabla jobs de hr
create user oracle5
identified by oracle5
default tablespace usuarios
quota unlimited on usuarios;
Grant opera_jobs to oracle5, oracle4;
insert into hr.jobs values('SA_TA', 'dddd', 200,9000)
35. Retira el privilegio create user del role opera_jobs
Revoke create user from opera_jobs
36. Retira al usuario oracle5 el rol opera_jobs
Revoke opera_jobs from oracle5
37. Borra el rol opera_jobs
Drop role opera_jobs
38.
Si cuando creamos un usuario no le asignamos ningn perfil, qu perfil le
adjudica ORACLE? Entra en la vista dba_profiles y comprueba los valores de los
campos asociados al perfil DEFAULT.
a. Cuntas sesiones concurrentes por usuario permite ?
b.Cul es el lmite de tiempo de inactividad?
c. Cul es el mximo tiempo que una sesin puede permanecer inactiva?
d.Cuntos intentos consecutivos fallidos permite antes de bloquear la cuenta?
Le asigna el perfil DEFAULT.
select * from dba_profiles
No hay lmite de sesiones, tiempo de actividad o inactivadad.
Hay 10 intentos
39.
Crea el perfil pruebas1 (desde el usuario administrador) de modo que solo pueda
haber 2 sesiones concurrentes por usuario, el tiempo de inactividad ser un mximo de
2 y el n de intentos fallidos antes de bloquear la cuenta 2. Indica los pasos realizados
Grant create profile to administrador;
create profile pruebas1
limit sessions_per_user 2
idle_time 2
failed_login_attempts 2;
alter system set resource:_limit=true

Unidad11. Usuarios, perfiles, privilegios y roles.


40. modifica el usuario oracle4 de modo que su perfil sea pruebas1 y comprueba que se
cumplen las condiciones del perfil (crea varias sesiones concurrentes, manten un tiempo
de inactividad superior a 2, haz tres intentos fallidos de conexin)
alter user oracle4
profile pruebas1;
41. Modifica el perfil pruebas1 cambiando el tiempo de inactividad a 3 y el tiempo de
sesin a 400. Hazlo con el usuario administrador si no tiene permisos, concedeselos.
alter profile pruebas1
limit idle_time 400
42.
Comprueba a travs de la vista de perfiles cuales son los nuevos valores
asignados.
43. Borra el perfil pruebas1
Drop profile pruebas1 cascade