Diferència entre revisions de la pàgina «M2 - Bases de dades / Exercicis UF3: Llenguatges SQL / Solucions Administració Oracle»

De wikiserver
Dreceres ràpides: navegació, cerca
Línia 12: Línia 12:
 
</pre>
 
</pre>
  
3. Crear un rol que tenga los siguientes privilegios: INSERT y SELECT en las tablas HR.DEPARTMENTS y HR.EMPLOYEES, CREATE SESSION, CREATE DATABASE LINK, CREATE TABLE y CREATE VIEW
+
3. Crear el usuario RH. Tablespace por defecto: users, Tablespace temporal: Temp. Asignar al usuario RH los roles CONNECT i RESOURCE.
 +
<pre>
 +
CREATE USER COMPRADOR IDENTIFIED BY COMPRADOR
 +
DEFAULT TABLESPACE USERS TEMPORARY TABLESPACE TEMP;
 +
 
 +
GRANT CONNECT TO RH;
 +
GRANT RESOURCE TO RH;
 +
</pre>
 +
4. Crear las tablas como RH.
 +
<pre>
 +
CREATE TABLE CLIENTE (
 +
DNI VARCHAR2(10),
 +
NOMBRE VARCHAR2(20),
 +
FECHA_NAC DATE NOT NULL,
 +
DIRECCION VARCHAR2(200),
 +
TFNO VARCHAR2(10),
 +
APELLIDOS VARCHAR2(100),
 +
CONSTRAINT CLIENTE_PK PRIMARY KEY (DNI))
 +
 
 +
CREATE TABLE PROVEEDOR(
 +
NIF VARCHAR2(10),
 +
NOMBRE VARCHAR2(20),
 +
DIRECCION VARCHAR2(200),
 +
TFNO VARCHAR2(10),
 +
CONSTRAINT PROVEEDOR_PK PRIMARY KEY (NIF))
 +
</pre>
 +
<pre>
 +
CREATE TABLE CLIENTE (
 +
DNI VARCHAR2(10),
 +
NOMBRE VARCHAR2(20),
 +
FECHA_NAC DATE NOT NULL,
 +
DIRECCION VARCHAR2(200),
 +
TFNO VARCHAR2(10),
 +
APELLIDOS VARCHAR2(100),
 +
CONSTRAINT CLIENTE_PK PRIMARY KEY (DNI));
 +
</pre>
 +
<pre>
 +
CREATE TABLE PROVEEDOR(
 +
NIF VARCHAR2(10),
 +
NOMBRE VARCHAR2(20),
 +
DIRECCION VARCHAR2(200),
 +
TFNO VARCHAR2(10),
 +
CONSTRAINT PROVEEDOR_PK PRIMARY KEY (NIF));
 +
</pre>
 +
 
 +
5.Crear un rol que tenga los siguientes privilegios: INSERT y SELECT en las tablas RH.CLIENTE y RH.PROVEEDOR, CREATE SESSION, CREATE DATABASE LINK, CREATE TABLE y CREATE VIEW.
 
<pre>
 
<pre>
 
CREATE ROLE UN_ROL;
 
CREATE ROLE UN_ROL;
GRANT INSERT, SELECT ON HR.DEPARTMENTS TO UN_ROL;
+
 
GRANT INSERT, SELECT ON HR.EMPLOYEES TO UN_ROL;
+
GRANT INSERT, SELECT ON RH.CLIENTE TO UN_ROL;
GRANT CREATE SESSION, CREATE DATABASE LINK,CREATE TABLE,
+
GRANT INSERT, SELECT ON HR.PROVEEDOR TO UN_ROL;
CREATE VIEW TO UN_ROL;
+
GRANT CREATE SESSION, CREATE DATABASE LINK,CREATE TABLE, CREATE VIEW TO UN_ROL;
 
</pre>
 
</pre>
4. Crear un usuario llamado COMPRADOR. El tablespace por defecto es COMPRAS. Se le asigna  1Mb en el tablespace COMPRAS y 0 de cuota en el tablespace SYSTEM. El tablespace temporal será TEMP. Asignarle el rol anterior.  
+
 
 +
6. Crear un usuario llamado COMPRADOR. El tablespace por defecto es COMPRAS. Se le asigna  1Mb en el tablespace COMPRAS y 0 de cuota en el tablespace SYSTEM. El tablespace temporal será TEMP. Asignarle el rol anterior.  
 
<pre>
 
<pre>
 
CREATE USER COMPRADOR IDENTIFIED BY COMPRADOR
 
CREATE USER COMPRADOR IDENTIFIED BY COMPRADOR
Línia 29: Línia 75:
 
</pre>
 
</pre>
 
<!--
 
<!--
5. Crear un usuario de base de datos llamado ‘administrador’ que tenga funciones de administrador, ponedle de parword administrador  
+
7. Crear un usuario de base de datos llamado ‘administrador’ que tenga funciones de administrador, ponedle de parword administrador  
 
<pre>
 
<pre>
 
CREATE USER ADMINISTRADOR IDENTIFIED BY ADMINISTRADOR;
 
CREATE USER ADMINISTRADOR IDENTIFIED BY ADMINISTRADOR;
 
GRANT DBA TO ADMINISTRADOR;
 
GRANT DBA TO ADMINISTRADOR;
 
</pre>
 
</pre>
6. Conectarse con el nombre de usuario creado anteriormente.  
+
8. Conectarse con el nombre de usuario creado anteriormente.  
 
<pre>
 
<pre>
 
CONNECT ADMINISTRADOR
 
CONNECT ADMINISTRADOR
 
</pre>
 
</pre>
7. Crear varias tablas  como administrador.  
+
9. Crear varias tablas  como administrador.  
 
<pre>
 
<pre>
 
CREATE TABLE CLIENTE (
 
CREATE TABLE CLIENTE (
Línia 74: Línia 120:
 
CONSTRAINT CLIENTECP_FK FOREIGN KEY (CLN_DNI) REFERENCES CLIENTE(DNI));
 
CONSTRAINT CLIENTECP_FK FOREIGN KEY (CLN_DNI) REFERENCES CLIENTE(DNI));
 
</pre>
 
</pre>
8. Crear 5 usuarios nuevos ( USU1, USU2, USU3, USU4, USU5) con la misma contraseña que el nombre, asignándoles el tablespace COMPRAS y una cuota de 2M  
+
10. Crear 5 usuarios nuevos ( USU1, USU2, USU3, USU4, USU5) con la misma contraseña que el nombre, asignándoles el tablespace COMPRAS y una cuota de 2M  
 
<pre>
 
<pre>
 
CREATE USER USU1 IDENTIFIED BY USU1 DEFAULT TABLESPACE  
 
CREATE USER USU1 IDENTIFIED BY USU1 DEFAULT TABLESPACE  
Línia 96: Línia 142:
 
QUOTA 2M ON COMPRAS;
 
QUOTA 2M ON COMPRAS;
 
</pre>
 
</pre>
9. Dar permiso a USU1 sólo para que pueda conectarse a la BD.  
+
11. Dar permiso a USU1 sólo para que pueda conectarse a la BD.  
 
<pre>
 
<pre>
 
GRANT CREATE SESSION TO USU1;
 
GRANT CREATE SESSION TO USU1;
 
</pre>
 
</pre>
10. Crear un rol que permita conectarse a la BD y hacer SELECT sobre las tablas definidas en el ejercicio 7.  
+
12. Crear un rol que permita conectarse a la BD y hacer SELECT sobre las tablas definidas en el ejercicio 7.  
 
<pre>
 
<pre>
 
CREATE ROLE ROL_USU;
 
CREATE ROLE ROL_USU;
Línia 109: Línia 155:
 
GRANT SELECT ON CLIENTE_PRODUCTO TO ROL_USU;
 
GRANT SELECT ON CLIENTE_PRODUCTO TO ROL_USU;
 
</pre>
 
</pre>
11. Asignar el rol creado a los usuarios USU2  y USU3.  
+
13. Asignar el rol creado a los usuarios USU2  y USU3.  
 
<pre>
 
<pre>
 
GRANT ROL_USU TO USU2, USU3;
 
GRANT ROL_USU TO USU2, USU3;
 
</pre>
 
</pre>
12. Conceder al usuario USU4 privilegios INSERT y DELETE sobre las tablas CLIENTE y PROVEEDOR con la opción de poder concedérselos a otros usuarios.  
+
14. Conceder al usuario USU4 privilegios INSERT y DELETE sobre las tablas CLIENTE y PROVEEDOR con la opción de poder concedérselos a otros usuarios.  
 
<pre>
 
<pre>
 
GRANT INSERT, DELETE ON CLIENTE TO USU4 WITH GRANT OPTION;
 
GRANT INSERT, DELETE ON CLIENTE TO USU4 WITH GRANT OPTION;
 
GRANT INSERT, DELETE ON PROVEEDOR TO USU4 WITH GRANT OPTION;
 
GRANT INSERT, DELETE ON PROVEEDOR TO USU4 WITH GRANT OPTION;
 
</pre>
 
</pre>
13. Conceder al usuario USU5 cuatro privilegios de sistema, dos de ellos con la opción de poder concedérselos a otros usuarios.  
+
15. Conceder al usuario USU5 cuatro privilegios de sistema, dos de ellos con la opción de poder concedérselos a otros usuarios.  
 
<pre>
 
<pre>
 
GRANT CREATE ANY TABLE,CREATE USER TO USU5 WITH ADMIN
 
GRANT CREATE ANY TABLE,CREATE USER TO USU5 WITH ADMIN
Línia 124: Línia 170:
 
GRANT ALTER TABLESPACE, CREATE TABLESPACE TO USU5;
 
GRANT ALTER TABLESPACE, CREATE TABLESPACE TO USU5;
 
</pre>
 
</pre>
14. Conceder a todos los usuarios de la BD privilegios para que puedan modificar las columnas  DIRECCION y TELEFONO de las tablas CLIENTE y PROVEEDOR.  
+
16. Conceder a todos los usuarios de la BD privilegios para que puedan modificar las columnas  DIRECCION y TELEFONO de las tablas CLIENTE y PROVEEDOR.  
 
<pre>
 
<pre>
 
GRANT UPDATE(DIRECCION, TFNO) ON CLIENTE TO PUBLIC;
 
GRANT UPDATE(DIRECCION, TFNO) ON CLIENTE TO PUBLIC;
 
GRANT UPDATE(DIRECCION, TFNO) ON PROVEEDOR TO PUBLIC;
 
GRANT UPDATE(DIRECCION, TFNO) ON PROVEEDOR TO PUBLIC;
 
</pre>
 
</pre>
15. Quitar a los usuarios USU3 y USU4 todos los privilegios que tenían asignados.  
+
17. Quitar a los usuarios USU3 y USU4 todos los privilegios que tenían asignados.  
 
<pre>
 
<pre>
 
REVOKE ROL_USU FROM USU3;
 
REVOKE ROL_USU FROM USU3;
Línia 137: Línia 183:
 
REVOKE ALL PRIVILEGES FROM USU4;  // Per als privilegis de sistema.
 
REVOKE ALL PRIVILEGES FROM USU4;  // Per als privilegis de sistema.
 
</pre>
 
</pre>
16. Comprovar la limitació de recursos. En cas de que no estigui activa, activar-la.
+
18. Comprovar la limitació de recursos. En cas de que no estigui activa, activar-la.
 
<pre>
 
<pre>
 
SELECT name, value
 
SELECT name, value
Línia 149: Línia 195:
 
WHERE name = 'resource_limit';
 
WHERE name = 'resource_limit';
 
</pre>
 
</pre>
17. Hacer que USU5 sólo pueda conectarse en dos sesiones concurrentes a la vez.  
+
19. Hacer que USU5 sólo pueda conectarse en dos sesiones concurrentes a la vez.  
 
<pre>
 
<pre>
 
CREATE PROFILE LIM_SESION LIMIT SESSIONS_PER_USER 2;
 
CREATE PROFILE LIM_SESION LIMIT SESSIONS_PER_USER 2;
 
ALTER USER USU5 IDENTIFIED BY USU5 PROFILE LIM_SESION;
 
ALTER USER USU5 IDENTIFIED BY USU5 PROFILE LIM_SESION;
 
</pre>
 
</pre>
18. Limitar el tiempo de conexión a la BD a 5 minutos a los usuarios USU2 y USU3.  
+
20. Limitar el tiempo de conexión a la BD a 5 minutos a los usuarios USU2 y USU3.  
 
<pre>
 
<pre>
 
CREATE PROFILE TIEMPOLIMITE LIMIT CONNECT_TIME 5;
 
CREATE PROFILE TIEMPOLIMITE LIMIT CONNECT_TIME 5;

Revisió del 17:28, 1 feb 2024

1. Crear un tablespace de nombre compras asociándole un fichero en disco llamado ‘COMPRAS.ORA’ de 5 Mb.

CREATE TABLESPACE COMPRAS DATAFILE 'COMPRAS.ORA' SIZE 5M;

2. Modificar el tablespace anterior para que pueda autoextenderse automáticamente, sin límite de espacio en disco.

ALTER TABLESPACE COMPRAS ADD DATAFILE 'COMPRAS1.ORA' 
SIZE 1M
AUTOEXTEND ON NEXT 1M MAXSIZE UNLIMITED;
o
ALTER DATABASE DATAFILE 'compras.ora' AUTOEXTEND ON MAXSIZE UNLIMITED;

3. Crear el usuario RH. Tablespace por defecto: users, Tablespace temporal: Temp. Asignar al usuario RH los roles CONNECT i RESOURCE.

CREATE USER COMPRADOR IDENTIFIED BY COMPRADOR
DEFAULT TABLESPACE USERS TEMPORARY TABLESPACE TEMP;

GRANT CONNECT TO RH;
GRANT RESOURCE TO RH;

4. Crear las tablas como RH.

CREATE TABLE CLIENTE (
DNI VARCHAR2(10),
NOMBRE VARCHAR2(20),
FECHA_NAC DATE NOT NULL,
DIRECCION VARCHAR2(200),
TFNO VARCHAR2(10),
APELLIDOS VARCHAR2(100),
CONSTRAINT CLIENTE_PK PRIMARY KEY (DNI))

CREATE TABLE PROVEEDOR(
NIF VARCHAR2(10),
NOMBRE VARCHAR2(20),
DIRECCION VARCHAR2(200),
TFNO VARCHAR2(10),
CONSTRAINT PROVEEDOR_PK PRIMARY KEY (NIF))
CREATE TABLE CLIENTE (
DNI VARCHAR2(10),
NOMBRE VARCHAR2(20),
FECHA_NAC DATE NOT NULL,
DIRECCION VARCHAR2(200),
TFNO VARCHAR2(10),
APELLIDOS VARCHAR2(100),
CONSTRAINT CLIENTE_PK PRIMARY KEY (DNI));
CREATE TABLE PROVEEDOR(
NIF VARCHAR2(10),
NOMBRE VARCHAR2(20),
DIRECCION VARCHAR2(200),
TFNO VARCHAR2(10),
CONSTRAINT PROVEEDOR_PK PRIMARY KEY (NIF));

5.Crear un rol que tenga los siguientes privilegios: INSERT y SELECT en las tablas RH.CLIENTE y RH.PROVEEDOR, CREATE SESSION, CREATE DATABASE LINK, CREATE TABLE y CREATE VIEW.

CREATE ROLE UN_ROL;

GRANT INSERT, SELECT ON RH.CLIENTE TO UN_ROL;
GRANT INSERT, SELECT ON HR.PROVEEDOR TO UN_ROL;
GRANT CREATE SESSION, CREATE DATABASE LINK,CREATE TABLE, CREATE VIEW TO UN_ROL;

6. Crear un usuario llamado COMPRADOR. El tablespace por defecto es COMPRAS. Se le asigna 1Mb en el tablespace COMPRAS y 0 de cuota en el tablespace SYSTEM. El tablespace temporal será TEMP. Asignarle el rol anterior.

CREATE USER COMPRADOR IDENTIFIED BY COMPRADOR
DEFAULT TABLESPACE COMPRAS TEMPORARY TABLESPACE TEMP
QUOTA 1M ON COMPRAS  QUOTA 0 ON SYSTEM;

GRANT UN_ROL TO COMPRADOR;