Diferència entre revisions de la pàgina «M2 - Bases de dades / Exercicis UF3: Llenguatges SQL / Accés a la base de dades»
Línia 112: | Línia 112: | ||
GRANT UNLIMITED TABLESPACE TO user1; | GRANT UNLIMITED TABLESPACE TO user1; | ||
</pre> | </pre> | ||
− | + | ||
20.Crear un perfil 'LIMREC con los límites de recursos siguientes: máximo de 5 sesiones de BD concurrentes abiertas, CPU por sesión ilimitada, CPU por petición de BD 30 segundos, tiempo de conexión activa ilimitado, estar inactivo durante un tiempo máximo de 30 minutos, lecturas lógicas por sesión ilimitadas y lecturas lógicas por petición 1000. | 20.Crear un perfil 'LIMREC con los límites de recursos siguientes: máximo de 5 sesiones de BD concurrentes abiertas, CPU por sesión ilimitada, CPU por petición de BD 30 segundos, tiempo de conexión activa ilimitado, estar inactivo durante un tiempo máximo de 30 minutos, lecturas lógicas por sesión ilimitadas y lecturas lógicas por petición 1000. | ||
<pre> | <pre> | ||
Línia 177: | Línia 177: | ||
WHERE profile=’limrec’; | WHERE profile=’limrec’; | ||
</pre> | </pre> | ||
− | --> | + | <!----> |
Revisió de 19:35, 7 feb 2024
1.Crear un usuario 'USER1' con autentificación de contraseña ('insti'). Otorgale el privilegio de iniciar sesión.
CREATE USER user1 IDENTIFIED BY insti; GRANT CREATE SESSION TO user1;
2.Entrar como 'USER1' y cambiar la contraseña a 'merce'.
ALTER USER user1 IDENTIFIED BY merce;
3.Crea el tablespace de nombre usuarios asociándole un fichero en disco llamado 'USUARIOS.ORA' de 5 Mb. Asignar el tablespace usuarios y como temporal el tablespace temp a 'USER1'
CREATE TABLESPACE USUARIOS DATAFILE 'USUARIOS.ORA' SIZE 5M; ALTER USER user1 DEFAULT TABLESPACE usuarios TEMPORARY TABLESPACE temp;
4.Bloqueamos la cuenta de 'USER1'.
ALTER USER user1 ACCOUNT lock;
5.Desbloqueamos la cuenta de 'USER1'.
ALTER USER user1 ACCOUNT unlock;
6.Conceder privilegios a 'USER1' para que pueda conectarse, crear tablas, vistas, secuencias y tipos. Permitirle que pueda conceder estos privilegios a otros usuarios.
GRANT CREATE SESSION, CREATE TABLE, CREATE VIEW, CREATE SEQUENCE, CREATE TYPE TO user1 WITH ADMIN OPTION;
7.Revocar los privilegios concedidos a 'USER1'.
REVOKE CREATE SESSION, CREATE TABLE, CREATE VIEW, CREATE SEQUENCE, CREATE TYPE FROM user1;
8.Conceder los privilegios INSERT, UPDATE, DELETE y SELECT para la tabla ‘cliente’ (RH.cliente) a 'USER1'.
GRANT INSERT, UPDATE, DELETE, SELECT ON RH.cliente TO user1;
9.Conceder todos los privilegios para la tabla ‘proveedor’ a 'USER1' incluyendo que pueda conceder estos privilegios a otros usuarios.
GRANT ALL PRIVILEGES ON RH.proveedor TO user1 WITH GRANT OPTION;
10- Queremos que un usuario llamado 'USER2' (crearlo), con contraseña 'merce', sólo pueda hacer INSERT en las columnas (DNI, nombre), UPDATE en las columnas (direccion, telefono) y REFERENCES en la columna (DNI) y SELECT en todas las columnas de la tabla 'cliente' de 'RH'.
CREATE USER user2 IDENTIFIED BY merce DEFAULT TABLESPACE users TEMPORARY TABLESPACE temp ACCOUNT UNLOCK; GRANT SELECT, INSERT (DNI, nombre), UPDATE (direccion, telefono), REFERENCES (DNI) ON HR.cliente TO user2;
11.Revocar el privilegio references a 'USER2'.
REVOKE REFERENCES ON scott.emp FROM user2 CASCADE CONSTRAINTS;
12.Crear un rol para los programadores de aplicaciones del sistema llamado 'PAS' con contraseña ‘sistema’.
CREATE ROLE pas IDENTIFIED BY sistema;
13.Conceder los privilegios de sistema CREATE SESSION, CREATE TABLE, CREATE VIEW, CREATE ANY INDEX, CREATE SÉQUENCE, CREATE TYPE al rol 'PAS' creado anteriormente.
GRANT CREATE SESSSION, CREATE TABLE, CREATE VIEW, CREATE ANY INDEX, CREATE SEQUENCE, CREATE TYPE TO pas;
14.Conceder los privilegios de objeto INSERT, UPDATE, DELETE, SELECT sobre la tabla 'cliente' al rol 'PAS'.
GRANT INSERT, UPDATE, DELETE, SELECT ON RH.cliente TO pas;
15.Conceder el rol 'PAS' al usuario 'USER2'.
GRANT pas TO user2;
16.Conceder el rol PAS'al usuario 'USER1'.
GRANT pas TO user1;
17.Conceder al usuario 'USER2' el derecho de 5mb de espacio en el espacio de tabla USERS.
ALTER USER user2 QUOTA 5M ON usuarios;
18.Conceder al usuario 'USER2' el derecho de cantidad ilimitada de espacio en el espacio de tabla USERS.
ALTER USER user2 QUOTA UNLIMITED ON usuarios;
19.Conceder al usuario 'USER1' cuota ilimitada a todos los espacios de tablas.
GRANT UNLIMITED TABLESPACE TO user1;
20.Crear un perfil 'LIMREC con los límites de recursos siguientes: máximo de 5 sesiones de BD concurrentes abiertas, CPU por sesión ilimitada, CPU por petición de BD 30 segundos, tiempo de conexión activa ilimitado, estar inactivo durante un tiempo máximo de 30 minutos, lecturas lógicas por sesión ilimitadas y lecturas lógicas por petición 1000.
CREATE PROFILE limrec LIMIT SESSIONS_PER_USER 5 CPU_PER_SESSION UNLIMITED CPU_PER_CALL 3000 CONNECT_TIME UNLIMITED IDLE_TIME 30 LOGICAL_READS_PER_SESSION UNLIMITED LOGICAL_READS_PER_CALL 1000;
21.Modificar el perfil anterior ajustando la contraseña de administración a: bloquear la cuenta tras tres intentos consecutivos sin éxito, si se bloquea la cuenta mantener esta bloqueada durante todo un día, tiempo de vida para la contraseña de 30 días más un periodo de grácia de cinco días, el perfil de usuario no puede volver a usar una contraseña antigua.
ALTER PROFILE limrec LIMIT FAILED_LOGIN_ATTEMPTS 3 PASSWORD_LOCK_TIME 1 PASSWORD_LIFE_TIME 30 PASSWORD_GRACE_TIME 5 PASSWORD_REUSE_TIME 1 PASSWORD_REUSE_MAX UNLIMITED;
22.Hacer que caduque la contraseña de 'USER2'.
ALTER USER user2 PASSWORD EXPIRE;
23.Asignar a USER1 el perfil 'LIMREC'.
ALTER USER user1 PROFILE limrec;
24. Deshabilitar la administración de contraseñas para el perfil predeterminado de la BD.
ALTER PROFILE default LIMIT PASSWORD_LIFE_TIME UNLIMITED PASSWORD_REUSE_TIME UNLIMITED PASSWORD_REUSE_MAX UNLIMITED PASSWORD_LOCK_TIME UNLIMITED PASSWORD_GRACE_TIME UNLIMITED PASSWORD_VERIFY_FUNCTION NULL;
25. Mostrar información (status del compte, tablespace per defecte i tablespace temporal i perfil) acerca de los usuarios 'USER1' y 'USER2'. Vista DBA_USERS.
SELECT USERNAME, ACCOUNT_STATUS, DEFAULT_TABLESPACE, TEMPORARY_TABLESPACE, PROFILE FROM DBA_USERS WHERE lower(username) IN (‘user1’, ‘user2’);
26. Mostrar información sobre los roles de la base de datos.
SELECT * FROM dba_roles WHERE role IN (‘CONNECT’, ‘RESOURCE’, ‘DBA’, ‘PERFIL1’);
27. Mostrar información acerca de las cuotas de espacio de tablas.
SELECT tablespace_name, username, bytes, max_bytes FROM dba_ts_quotas;
28.Mostrar información acerca del perfil ‘LIMREC’.
SELECT profile, resource_name, limit FROM dba_profiles WHERE profile=’limrec’;