You are on page 1of 8

Tarea para ASGBD02.

1. Escribe la sentencia para crear dos vistas:


La primera afectar a las columnas: codigo, grupo y tutor de la tabla clases.

Creamos la primera vista usando el comando:


create view vista1
as select
cdigo,grupo,nombre_tutor
from
clases;
y mostramos la vista recin creada con el comando:
select * from vista1;

La segunda tomar las columnas: nombre, apellido y tantos_marcados de


jugadores, nombre_tutor y puntuacin de clases, nombre de puestos.

Para realizar esta vista se utilizo el siguiente comando:


create view view2 as select a.nombre, a.apellido, a.tantos_marcados,
b.nombre_tutor, b.puntuacion, c.nombre as nombre_puest from jugadores
as a, clases as b, puestos as c where a.clase = b.codigo and a.puesto =
c.codigo order by 1;
se han tenido que cambiar algunos nombres ya que daban conflictos por
nombre clonados.
2. Escribe la sentencia para crear dos usuarios, asgbd01 y asgbd02, el
primero con contrasea, igual a su nombre de usuario, y el otro sin
contrasea.

Para crear un usuario con contrasea utilizaremos el siguiente comando:


Create user 'nombreusuario'@'localhost' identified by 'laclave';

3. Escribe las sentencias necesarias para darle al usuario asgbd01


permisos para acceder desde el servidor y cualquier otro puesto. Desde
ambos tendr autorizacin sobre todos los elementos de la base de
datos, pero solo podr otorgar permisos desde el servidor.

Con la lnea de comandos:


Grant all privileges on baloncesto.* to asgbd01@localhost identified by
asgbd01 with grant option;
Con esta linea le otorgaremos al usuario asgbd01 todos los privilegios desde el
servidor y que tambin pueda otorgar sus privilegios en el servidor.

Teniendo en cuenta que mysql toma cada usuarios idependientemente a la


hora de los privilegios tendremos que crear un usuario nuevo:
create user asgbd01@% identified by asgbd01;
para ahora otorgarle los permisos adecuados:
grant all privileges on baloncesto.* to asgbd01@%;
con esta linea le estamos otorgando al usuario todos los privilegios desde
cualquier ordenador que se conecte, pero no podra otorgar ningn privilegio al
menos que este en el propio servidor.
4. Escribe la sentencia para dar a asgbd02 permisos para acceder desde
cualquier puesto excepto el servidor y que solo pueda realizar consultas,
inserciones, modificaciones y borrados sobre la base de datos
Baloncesto.

Primero he creado el usuario puesto que no lo tenia creado previamente, y


despus le e otorgado los privilegios con:
Grant select, insert, update, delete on baloncesto.* to asgbd02@%;
Con la siguiente linea de comando el usuario podr :
Select: leer datos de las tablas.
Insert: insertar datos en las tablas.
Update: actualizar los datos de las tablas.
Delete: borrar datos de las tablas.
Desde cualquier ordenador excepto del servidor, ya que no le hemos puesto
localhost al asignarle el privilegio.
5. Cmo bloqueas la tabla jugadores para lectura y escritura a la vez?

Con el comando:
Lock table baloncesto.jugadores as j1 read, baloncesto.jugadores as j2
write;
Hemos bloqueado la tabla jugadores de la BD baloncesto contra escritura y
lectura.
Usando el comando : show open tables from baloncesto;
Podemos ver el estado de las tablas, en este caso en la columna In_use todas
las que se muestren a uno quiere decir que estn bloqueadas.
Escribe una SELECT que bloquee al jugador TITTO LOPEZ en su ejecucin.

Con el comando:
select * from jugadores where nombre like TITTO and apellido like
LOPEZ lock in shared mode;

bloqueamos al jugador titto en ejecucion.