M2 - Bases de dades / Exercicis UF3: Llenguatges SQL / Accés a la base de dades

De wikiserver
Dreceres ràpides: navegació, cerca

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