Vous êtes sur la page 1sur 33

PRACTICAS TEMA 6.

Segunda parte, ejercicios del 11 al 80. USUARIOS, PERFILES, PRIVILEGIOS Y ROLES.

Eduardo Bayn Cascajo

Administracin de BD Oracle10g

11. Crear dos tablespace temporales, manejados de forma local, llamados TEMP_NOMINA y TEMP_ACADEMO con las siguientes caractersticas: TEMP_ACADEMO 500K SI 50K 600K TEMP_NOMINA 600K SI 50K 700K

Tamao Inicial Autoextensible Extensin Tamao mnimo Localizacin

/home/oracle/oracle/product/10 /home/oracle/oracle/product/10.2. .2.0/oradata/asir1/temp_acade 0/oradata/asir1/temp_nomina01.d mo01.dbf bf

Creamos el tablespace temporal temp_academo:

Y a continuacin el tablespace temporal temp_nomina:

12. Estando conectado como usuario administrador probar a crear un rol llamado administrador, qu ocurre? Nos autenticamos como usuario administrador:

E intentamos crear un rol:

No podemos realizar la accin debido a que el usuario administrador no tiene los privilegios necesarios para crea roles.

Pgina 2 de 33

Eduardo Bayn Cascajo

Administracin de BD Oracle10g

13. dem estando conectado como usuario SYSTEM, qu sucede?, por qu? Nos logueamos como sysdba o system:

E intentamos crear el rol de nuevo:

En este caso el error que se nos muestra es debido a un conflicto en los nombres, ya que administrador ya existe con otro usuario o rol.

14. Comprobar en el diccionario de datos los usuarios o roles que poseen el privilegio CREATE ROLE. Para ello visualizamos el contenido de dba_sys_privs cuando el privilegio sea el de crear roles:

As pues vemos lo usuarios del sistema que tienen este privilegio.

Pgina 3 de 33

Eduardo Bayn Cascajo

Administracin de BD Oracle10g

15. Crear un rol llamado ADMIN, asignarle los privilegios create session, create user y CREATE ROLE. Asignarlo al usuario administrador. Creamos el rol admin:

Y le damos privilegio para que pueda crear sesiones:

Y tambin para que pueda crear usuarios:

Para que pueda crear roles el usuario administrador, que se puede ejecutar de este modo recuperando la sentencia del buffer:

Asignamos los cambios realizados al usuario administrdor:

Pgina 4 de 33

Eduardo Bayn Cascajo

Administracin de BD Oracle10g

16. Consultar los privilegios de sistema que tiene asignados de forma directa el usuario administrador, revocarlos y asignarle el rol admin.. Consultamos los privilegios del usuario administrador sobre la vista dba_sys_privs:

Revocamos ambos privilegios, primero el de crear sesin:

Y luego el de crear usuarios:

Le asignamos el rol admin:

Pgina 5 de 33

Eduardo Bayn Cascajo

Administracin de BD Oracle10g

17. Crear, conectado como SYSTEM, un usuario llamado prueba01 autenticado por base de datos al que no se le asigne tablespace por defecto ni temporal. Nos conectamos como system o sysdba y creamos un usuario llamado prueba01:

18. Consultar en las vistas correspondientes los tablespaces y la quota en cada uno de ellos que tiene los usuarios SYS, SYSTEM, administrador, prueba00 y prueba01. Qu ha ocurrido con el usuario prueba01? Consultamos los tablespaces por defecto y temporales que tienen cada usuario:

Ahora consultamos la quota que tiene cada uno de ellos:

Podemos observar como aparece nicamente el usuario administrador que al crearlo le dimos unas caractersticas concretas.

Pgina 6 de 33

Eduardo Bayn Cascajo

Administracin de BD Oracle10g

19. Crear un usuario llamado prueba02 autenticado por base de datos, asignando como tablespace por defecto NOMINA y como tablespace temporal TEMP_NOMINA (no se le asignara cuota en NOMINA). Creamos el usuario prueba02 y le asignamos el tablespace por defecto nmina y el tablespace temporal temp_nomina pero sin asignarle quota:

20. Asignar al usuario prueba01 los tablespace ACADEMO y TEMP_ACADEMO como tablespace de trabajo y temporal respectivamente (sin especificar cuota). Se alterar el usuario ya creado prueba01 para que tenga los tablespaces de trabajo y temporal ACADEMO y TEMP_ACADEMO:

21. Consultar en las vistas correspondientes los tablespace y la cuota en cada uno de ellos que tiene los usuarios prueba01 y prueba02. Realizamos la consulta sobre la vista dba_ts_quotas en los usuarios prueba01 y prueba02:

No tiene quota porque al crearlos no se la hemos dado. 22. Crear un rol llamado CONEXIN y asignarle el permiso CREATE SESSION. Creamos el rol y le asignamos el permiso para creas sesiones:

Pgina 7 de 33

Eduardo Bayn Cascajo

Administracin de BD Oracle10g

23. Asignar el rol CONEXIN a los usuarios prueba00, prueba01 y prueba02. Le asignamos el rol conexin a los usuarios:

24. Comprobar en la vista correspondiente cuales son los roles asignados a los usuarios prueba00, prueba01 y prueba02. Lo comprobamos seleccionado la vista dba_role_privs sobre los usuarios que queremos:

25. Conectarse como usuario prueba01 y crear la tabla siguiente en el tablespace ACADEMO: Nos conectamos como usuario prueba01:

Y creamos la tabla CODIGOS con el tablespace academo:

No podemos crearla porque el usuario prueba01 con el que nos acabamos de autenticar no tiene los privilegios suficientes.

Pgina 8 de 33

Eduardo Bayn Cascajo

Administracin de BD Oracle10g

26. Crear un rol llamado DESARROLLO y asignarle los permisos CREATE SEQUENCE, CREATE SESSION, CREATE SYNONYM, CREATE TABLE y CREATE VIEW. Asignar el rol DESARROLLO a los usuarios prueba00, prueba01 y prueba02. Nos volvemos a conectar como system o sysdba y creamos el rol desarrollo:

Le asignamos los permisos para que pueda crear secuencia, sesiones, tablas, vistas y sinnimos al rol que acabamos de crear:

Le asignamos el rol creado a los usuarios prueba:

27. Volver a conectarse como usuario prueba01 y crear la tabla anterior en el tablespace ACADEMO. Nos conectamos como prueba01:

E intentamos crear la tabla sobre el tablespace Academo:

No podemos crearla por falta de privilegios sobre el tablespace ACADEMO

Pgina 9 de 33

Eduardo Bayn Cascajo

Administracin de BD Oracle10g

28. Asignar cuota ilimitada al usuario prueba01 en el tablespace ACADEMO. Volver a repetir el ejercicio 26 Nos conectamos como sysdba para realizar los cambios:

Y realizamos el cambio en la quota:

Nos volvemos a conectar como usuarios prueba01:

Y repetimos el paso de creacin de la tabla que no nos dej en el ejercicio anterior:

29. Asignar cuota ilimitada al usuario prueba02 en el tablespace NOMINA. Nos conectaremos de nuevo como sysdba para tener credenciales de administrador:

Altermos el sistema para que prueba02 tenga quota ilimitada en el tablespace Nomina:

Pgina 10 de 33

Eduardo Bayn Cascajo

Administracin de BD Oracle10g

30. Obtener informacin sobre roles, privilegios de sistema, tablespace y cuotas para los usuarios prueba00, prueba01 y prueba02. Obtenemos los roles de la vista dba_role_privs sobre los usuarios:

Obtenemos aquellos que tenga privilegios sobre el sistema de la vista dba_sys_privs:

Tablespaces de cada usuario y sus quotas:

31. Asignar cuota cero en el tablespace por defecto para el usuario prueba01, siguen estando sus objetos?, es posible crear algn otro? (probad a crear un tabla). Alteramos el usuario prueba01 y le asignamos quota = 0 sobre el tablespace academo:

Pgina 11 de 33

Eduardo Bayn Cascajo

Administracin de BD Oracle10g

Comprobamos si sigue teniendo sus objetos (tabla que habamos creado)

Intentamos crear une nueva tabla, primero nos conectamos como usuario prueba01 y luego la intentamos crear:

No podemos crear una nueva tabla dentro del tablespace Academo porque se supera el tamao de quota.

32. Conectarse como usuario prueba01 e intentar modificar su cuota en el tablespace ACADEMO, es posible? Nos conectamos como prueba01:

Intentamos modificar la quota de este usuario sobre le tablespace Academo:

No podemos hacerlo por falta de privilegios.

Pgina 12 de 33

Eduardo Bayn Cascajo

Administracin de BD Oracle10g

33. Conectarse como usuario prueba01 y modificar su clave, es posible? Ya estamos previamente conectados como usuario prueba01 e intentamos modificar su clave:

Podemos cambiarlo ya que para ello no hace falta tener privilegios de administrador. 34. Averiguar que usuarios o roles de base de datos tienen asignado el privilegio ALTER USER Nos conectamos como usuario administrador:

Comprobamos los roles que tienen los usuarios con el privilegio ALTER USER en la base de datos, visualizamos el contenido de dba_sys_privs:

35. Abrir una sesin con el usuario administrador y otra con el usuario prueba02. Siendo el usuario administrador, intentar borrar el usuario prueba02. Aprovechamos la conexin del ejercicio anterior para dejarla como administrador y abrimos una nueva y nos conectamos como prueba02:

Intentamos, desde la conexin de administrador, borrar el usuario prueba02:

No nos deja, porque est actualmente conectado.

Pgina 13 de 33

Eduardo Bayn Cascajo

Administracin de BD Oracle10g

36. Asignar el permiso DROP USER al rol ADMIN. Asignamos el permiso desde el usuario administador del sistema, sysdba:

37. Averiguar que usuarios o roles de base de datos tienen asignado el privilegio DROP USER. Para ello debemos visualizar el contenido de la vista dba_sys_privs cuando el privilegio sea DROP USER:

38. Conectado como usuario administrador, crear el usuario prueba03 autentificado por base de datos y asignando cuotas en el tablespace ACADEMO (500K) y NOMINA (200K). Su tablespace temporal ser TEMP. Nos autenticamos como el usuario administrador:

Creamos el usuario prueba03:

Pgina 14 de 33

Eduardo Bayn Cascajo

Administracin de BD Oracle10g

39. Comprobar en el fichero de inicializacin si est activado el modo de limitacin de recursos. El fichero de inicializacin es el init.ora, lo comprobamos con: Pero no se en que apartado me tengo que fijar para ver si el modo de limitacin de recursos est activado. 40. Averiguar que usuarios de base de datos o que roles tienen asignado el privilegio CREATE PROFILE. Nos conectamos como sysdba:

Averiguamos los usuarios de la base de datos que tienen los roles de CREATE PROFILE visualizando dba_sys_privs:

41. Asignar el permiso CREATE PROFILE al rol ADMIN.

42. Averiguar que perfiles estn definidos en la base de datos y que lmites de recursos fija cada uno de ellos. Visualizaremos la vista dba_profiles para saber los perfiles definidos en la base de datos:

Pgina 15 de 33

Eduardo Bayn Cascajo

Administracin de BD Oracle10g

43. Consultar que perfiles tiene asignados cada usuario de la base de datos. Visualizamos el contenido de dba_users:

Pgina 16 de 33

Eduardo Bayn Cascajo

Administracin de BD Oracle10g

44. 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

45. Asignar el perfil anterior a los usuarios prueba00, prueba01 prueba02 y prueba03. Primero lo haremos sobre le usuario prueba00 y luego con el comando c modificaremos lo parmetros que cambian en cada usuario y con r lo repetiremos. El usuario prueba00:

Cambiamos 00 por 01 y repetimos la accin:

Lo mismo con el usuario 02:

Lo mismo con el usuario 03:

Pgina 17 de 33

Eduardo Bayn Cascajo

Administracin de BD Oracle10g

46. Intentar la conexin dos veces como usuario prueba01 fallando la contrasea, qu sucede? Comprobar si la cuenta ha sido bloqueada en la vista de base de datos correspondiente. Nos logueamos errneamente con prueba01 la primera vez:

La segunda vez:

Y una tercera para conseguir que se bloquee:

Nos conectaremos como sysdba y comprobaremos que el usuario ha quedado bloqueado sobre la vista dba_users mirando su hora de bloqueo:

Pgina 18 de 33

Eduardo Bayn Cascajo

Administracin de BD Oracle10g

47. Crear un usuario prueba04 con el parmetro password expire, sus tablespace por defecto y temporal sern USERS (cuota 0k) y TEMP. Asignar los roles CONEXIN y DESARROLLO. Conectarse como usuario prueba04, qu sucede? Creamos el usuario prueba04 con los parmetros indicados:

Le asignamos los roles de conexin y desarrollo:

Nos autenticamos como prueba04

y nos indica que la contrasea a expirado y automticamente nos indicia que la cambiemos por una nueva. As lo haremos y estaremos conectados como prueba04. 48. Bloquear la cuenta del usuario prueba04, qu sucede al conectarse de nuevo? Nos logueamos como sysdba para poder realizar el bloqueo: Alteramos el usuario, para que quede la cuenta bloqueada:

Intentamos conectarnos como prueba04 pero no podremos al haber bloqueado el acceso a la cuenta:

Pgina 19 de 33

Eduardo Bayn Cascajo

Administracin de BD Oracle10g

49. Modificar el tablespace por defecto y el temporal del usuario prueba01 de forma que sean NOMINA y TEMP_NOMINA. Nos conectaremos como sysdba ya que nos habremos desconectado tras la accin anterior: Alteramos el usuario prueba04 para que por tenga el tablespace por defecto Nomina y el tablespace temporal Temp_nomina:

50. Comprobar cul es el valor del parmetro OS_AUTHENT_PREFIX en la base de datos. Para ello visualizamos el archivo con !pg seguido de la ruta del archivo:

Me pasa lo mismo que con el ejercicio nmero 40 no encuentro el parmetro OS_AUTHENT_PREFIX.


Pgina 20 de 33

Eduardo Bayn Cascajo

Administracin de BD Oracle10g

51. Cambia la identificacin del usuario prueba01 de forma que sea identificado por el sistema operativo. Nos autenticamos como sysdba si no lo estbamos y alteramos el usuario prueba01:

Y lo comprobamos:

52. Modificar el parmetro OS_AUTHENT_PREFIX de forma que, en adelante, la cadena que identifique a un usuario externo sea (cadena vaca). Visualizamos el contenido del fichero init.ora con !gedit especificando toda la ruta y buscando el parmetro os_authent_prefix para ponerlo vacio () No me aparece ese parmetro! 53. Desbloquear la cuenta del usuario prueba04.

Pgina 21 de 33

Eduardo Bayn Cascajo

Administracin de BD Oracle10g

54. Modificar los valores del perfil DEFAULT segn se indica en la siguiente tabla: 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 Modificamos el perfil segn los valores especificados en la tabla:

55. Averiguar que usuarios o roles tienen asignado el privilegio ALTER PROFILE. Para ello seleccionamos la vista dba_sys_privs cuando el privilegio sea de modificar el perfil:

56. Asignar el privilegio anterior al rol ADMIN. Le asignamos al usuario admin el rol alter profile:

Pgina 22 de 33

Eduardo Bayn Cascajo

Administracin de BD Oracle10g

57. Comprobar los valores asignados al perfil DESARROLLO. Modificar el perfil DESARROLLO, desde el usuario administrador, segn la siguiente tabla: Sessions_per_user 5 Connect_time DEFAULT Idle_time 30 Qu ha sucedido con el resto de los parmetros? Coincide el valor de Connect_time en este perfil con el que tiene en el perfil DEFAULT?

Nos conectaremos como administrador si no lo estamos y comprobamos los valores asignados al perfil Desarrollo en la vista dba_profiles:

Modificamos el perfil Desarrollo segn lo especificado:

Pgina 23 de 33

Eduardo Bayn Cascajo

Administracin de BD Oracle10g

58. Averiguar los privilegios de sistema y sobre objetos, as como los roles, que tiene asignados los roles por defecto CONNECT, RESOURCE, DBA, EXP_FULL_DATABASE e IMP_FULL_DATABASE Considera una buena poltica de seguridad asignar el rol CONNECT a todos los usuarios que precisan conectarse a la base de datos? Comprobamos los privilegios sobre la vista dba_role_privs desde la cuenta de system o sysdba:

Pgina 24 de 33

Eduardo Bayn Cascajo

Administracin de BD Oracle10g

59. Puede asignarse el perfil DESARROLLO al rol CONNECT? Y el perfil DEFAULT al perfil DESARROLLO?

Pgina 25 de 33

Eduardo Bayn Cascajo

Administracin de BD Oracle10g

60. Averiguar que usuarios o roles de la base de datos tienen asignado el privilegio DROP PROFILE. Para ello visualizamos dba_sys_privs cuando el privilegio sea el de borrar perfiles:

61. Asignar el privilegio DROP PROFILE al rol ADMIN.. Le asignamos el privilegio al usuario admin:

62. Conectarse como usuario administrador e intentar eliminar el perfil DEFAULT, qu ocurre? Nos conectamos como usuario administrador:

E intentamos eliminar el perfil default:

O de otro modo con:

No podemos borrarlo porque, segn el mensaje de Oracle, falta de identificacin. Es porque no tenemos el privilegio completo, es decir sobre perfiles del sistema.

Pgina 26 de 33

Eduardo Bayn Cascajo

Administracin de BD Oracle10g

63. Como usuario administrador crear el rol SECRETO identificado por la contrasea total y asignarlo al usuario prueba04. Nos autenticamos como administrador si no lo estamos y creamos el rol secreto con la contrasea total asignado a prueba04:

64. Averiguar que usuarios poseen el privilegio ALTER ANY ROLE (de forma directa o a travs de roles) Antes debemos conectarnos como sysdba si no los estamos y lo averiguamos a travs de la vista dba_sys_privs:

65. Qu valor tiene en la base de datos el parmetro MAX_ENABLED_ROLES? Modificar su valor para que, en adelante, valga 40. Comprobar esta modificacin. Para averiguar el valor del parmetro MAX_ENABLED_ROLES visualizamos el parmetro max_enabled_roles:

Para modificar el parmetro lo haremos mediante la instruccin siguiente: ALTER SYSTEM SET MAX_ENABLED_ROLES = 40; Pero no me deja modificarlo.

Pgina 27 de 33

Eduardo Bayn Cascajo

Administracin de BD Oracle10g

66. Averiguar que usuarios poseen el privilegio GRANT ANY ROLE (de forma directa o a travs de roles) Lo podremos saber seleccionando la vista dba_sys_privs:

67. Como usuario administrador, reasignar el rol SECRETO al usuario prueba04. Nos autenticamos como usuario administrador:

Y reasignamos el rol secreto al usuario prueba04:

68. Asignar el privilegio GRANT ANY ROLE al rol ADMIN.. Para ello tenemos que tener privilegios de administrador, as que nos logueamos como sysdba:

Asignamos el privilegio sobre el usuario admin:

69. Averiguar de nuevo que usuarios poseen el privilegio GRANT ANY ROLE (de forma directa o a travs de roles). Seleccionamos la vista dba_sys_privs especificando el privilegio GRANT ANY ROLE:

Pgina 28 de 33

Eduardo Bayn Cascajo

Administracin de BD Oracle10g

70. Averiguar que usuarios poseen el privilegio DROP ANY ROLE (de forma directa o a travs de roles). Para ello visualizaremos el contenido de dba_sys_privs cuando el privilegio sea DROP ANY ROLE:

71. Asignar permiso de conexin al usuario "prueba03", asignar el rol SECRETO al mismo usuario. Conectarse como este usuario e intentar borrar el rol. Nos autenticamos como system o sysdba si no lo estamos:

Asignamos permisos de conexin al usuario prueba03:

Y el rol secreto:

Una vez realizado nos autenticamos como prueba03:

E intentamos borrar el rol secreto:

No nos deja por falta de privilegios con el usuario prueba03.

Pgina 29 de 33

Eduardo Bayn Cascajo

Administracin de BD Oracle10g

72. En caso de que no lo tenga asignado, asignar el rol CONEXION y el rol DESARROLLO al usuario prueba04. Hacer que solo el rol CONEXIN este activo cuando se conecte. Nos autenticaremos como sysdba o system si no los estamos para poder comprobar los privilegios del usuario prueba04 sobre la vista dba_role_privs:

Modificaremos que el rol conexin est activo cuando se conecte:

73. Comprobar en la vista apropiada del diccionario de datos los roles activos en la sesin. Lo comprobamos sobre la vista dba_role_privs para ver de que manera han cambiado los roles:

74. Conectado como usuario prueba04, activar el rol DESARROLLO y comprobar de nuevo en la vista apropiada del diccionario de datos los roles activos en la sesin. Nos autenticamos como prueba04:

Comprobaremos los roles que tiene activados:

Pgina 30 de 33

Eduardo Bayn Cascajo

Administracin de BD Oracle10g

Y activamos todos los roles entre ellos desarrollo:

Volvemos a comprobar los roles activos para ver si se ha hecho correctamente:

75. Asignar el rol "CONNECT" al usuario "ADMIN". Es preciso asignarle los permisos "CREATE PROCEDURE", "CREATE PUBLIC SYNONYM", "CREATE ROLE", "CREATE TRIGGER"?, Los tiene ya asignados? Nos autenticamos como sysdba, si no lo estamos, y asignamos el rol connect al usuario admin:

Y comprobamos si es preciso asignar los permisos especificados:

Podemos ver que no los tiene asignados.

76. Conectarse como usuario SYSTEM y otorgar al usuario "prueba02" el permiso para seleccionar datos de la tabla cdigos (pertenece al usuario "prueba01"). Qu sucede?, por qu? Nos autenticamos como sysdba si no los estamos y damos permiso para seleccionar datos de la tabla cdigos al usuario prueba02:

En los ejercicios muestra error por falta de privilegios, pero a m me ha dejado realizarlo sin problemas.

Pgina 31 de 33

Eduardo Bayn Cascajo

Administracin de BD Oracle10g

77. Conectarse como usuario "prueba01" y otorgar al usuario "prueba02" el permiso para seleccionar datos de la tabla cdigos; hacerlo de forma que "prueba02" tambin pueda otorgar el permiso a otros usuarios (opcin ADMIN). Este paso ya lo he realizado en el ejercicio anterior pero lo repetiremos para que prueba02 pueda otorgar permisos a otros usuarios:

78. Conectarse como usuario "prueba02" y otorgar al usuario "prueba03" el permiso para seleccionar datos de la tabla cdigos. Nos autenticamos como prueba02:

Y otorgamos al usuario prueba03 el permiso para seleccionar datos de la tabla cdigos:

Y comprobamos que nos permite, desde el usuario prueba03 seleccionar filas de la tabla cdigos:

79. Conectarse como usuario "prueba01" y revocar al usuario "prueba02" el permiso para seleccionar datos de la tabla cdigos. Nos conectamos como prueba01:

Y revocamos el permiso para seleccionar datos de la tabla cdigos al usuario prueba02:

Pgina 32 de 33

Eduardo Bayn Cascajo

Administracin de BD Oracle10g

80. Conectarse como usuario "prueba03" e intentar consultar la tabla cdigos. Qu ocurre?, por qu? Nos autenticamos como prueba03:

E intentamos visualizar la tabla cdigos:

No nos deja por que anteriormente hemos recovado los privilegios sobre esta vista al usuario prueba02 que fue el que se los concedi a prueb03.

Pgina 33 de 33