Gesto

Enviado por Programa Chuletas y clasificado en Lengua y literatura

Escrito el en español con un tamaño de 10,26 KB

 

EjerciciosII

1.  Revisa la definicion de la tabla user en tu servidor y explica los permisos shutdown, process y file.

Shotdown: cerrar la sesion al servidor.

Process: puede utilizarse para ver el texto de las consultas que se estén ejecutando

actualmente, incluyendo consultas que establecen  o modifican passwords.

File: otorga permiso para leer y escribir archivos en la máquina del servidor utilizando las sentencias LOAD DATA INFILE y SELECT... INTO OUTFILE.

2.  ¿Cual es la diferencia entre los tipos enum y set en MySQL?

El tipo de campo ENUM y SET sirven para determinar los valores que puede tener un campo de una tabla. En ambos determinas la lista de valores que puede contener el campo.
La principal diferencia esta en que un campo de tipo ENUM siempre contendrá un sólo valor de la lista, en cambio en un campo de tipo SET el campo puede contener uno, varios o ningún valor de la lista. Pero hay más características que los diferencian, vamos a verlas.
El tipo de campo ENUM se define de la siguiente forma:
color ENUM('rojo', 'verde', 'azul') NOT NULL DEFAULT 'verde'

- Sólo contiene un valor.

- Se puede definir la lista de hasta 65535 valores distintos.

- Si se permite el valor NULL, este será el valor por defecto, en caso contrario, y si no se define con DEFAULT, será el primer valor de la lista (en el ejemplo de arriba, si no defino el DEFAULT ‘verde’, por defecto sería ‘rojo’).

- Cada valor de la lista es numerado con un índice (empieza en el 1), pudiéndose utilizar el índice en lugar del valor de la lista (en el ejemplo de arriba: 1=>’rojo’, 2=>’verde’ y 3=>’azul’).

- En caso de introducir un valor no definido en la lista, el campo pasará a valer '', una cadena vacía, que tiene el índice cero. Y el índice de NULL es NULL.

- Físicamente ocupa 1 byte si hay 255 o menos valores en la lista, o 2 bytes si hay 256 o más valores.

El tipo de campo SET se define de la siguiente forma:
letras SET ('a','b','c','d')

- Contiene uno, varios o ningún valores

- Se puede definir la lista de hasta 64 valores distintos.

- Físicamente ocupa ocupa 1, 2, 3... u 8 bytes, según la longitud de la lista de valores. Cada valor de la lista representa un bit de la cadena de bits del campo marcandose los valores que contiene el campo, de manera que si todos los bits estan a 1, es que ese campo contiene todos los valores.

3.  Explica los cuatro tipos de columnas en las tablas user y db.

Las columnas de alcance de la tabla user determinan si se rechazan o permiten conexiones entrantes. Para conexiones permitidas, cualquier privilegio otorgado en la tabla user indica los privilegios globales del usuario (superusuario). Estos privilegios se aplican a todas las bases de datos en el servidor.

Las columnas de alcance de la tabla db determinan qué usuarios pueden acceder a qué bases de datos desde qué equipo. La columna de privilegios determina qué operaciones se permiten. Un privilegio otorgado a nivel de base de datos se aplica a la base de datos y a todas sus tablas.

Las columnas de alcance determinan el alcance de cada entrada (registro) en las tablas; esto es, el contexto en que el registro se aplica.

Las columnas de privilegios indican qué privilegios se otorgan a un registro de la tabla; esto es, qué operaciones pueden ejecutarse. El servidor combina la información de diversas tablas de permisos para tener una descripción completa de los permisos de un usuario.

4.  ¿Que permisos globales se dan por defecto cuando creamos un usuario nuevo con el comando CREATE USER?, ¿que tablas se modifican cuando hacemos esta operación?

Para cada cuenta, CREATE USER crea un nuevo registro en la tabla mysql.user que no tiene permisos.

La tabla mysql.user.

5.   Indica en cada caso el significado de los valores para los campos user y host de la tabla user.

Un registro de la tabla user con los valores Host y User de 'thomas.loc.gov' y 'bob' se usarían para autenticar conexiones hechas al servidor desde el equipo thomas.loc.gov por un cliente que especifique un nombre de usuario de bob.

En user se especifica el usuario con el que se accedería al servidor

En host se especificaría el equipo con el que se accedería al servidor.

6.  Supón que tenemos los siguientes valores sobre la tabla user para los campos host y user:

HOST                     USER

‘u_ebanca’              ‘’

‘’                              guara.com

‘u_ebanca’              guara.com

Cuando se conecte el usuario u_banca, ¿con que cuenta lo hara?

Con el primer host u_ebanca porque no tiene especificado ningún usuario en concreto.

7.  Crea un usuario local llamado u1 sin contraseña. ¿Que puede hacer sobre la base de datos test? Crea ahra con el usuario root la tabla test.prueba1 con un campo de tipo int. Haz lo necesario para que u1 pueda insertar registros en dicha tabla. Cambia los permisos dandole a u1 solo permisos de actualizacion sobre dicha tabla. Intenta modificar una fila. Haz lo necesario para conseguirlo. Explica.

- Si al usuario no se le dan privilegios al crearlo no podria hacer nada sobre la tabla test, habria que especificar privilegios sobre el usuario.

Create table prueba1 (numero INT(10));

Show tables;

Select * from prueba1;

Grant insert on test.prueba1 to ‘u1’@localhost’;

Use test;

Grant insert on test.prueba1 to ‘u1’@localhost’;

Revoke insert on test.prueba1 to ‘u1’@localhost’;

Grant update on test.prueba1 to ‘u1’@localhost’;

- Solamente permite actualizar la tabla, no se puede insertar, ni borrar.

- Hay que darle los permisos insert y delete al usuario u1.

Grant insert, delete on test.prueba1 to ‘u1’@localhost’;

- Le damos estos permiso al usuario u1, se podrá editar cualquier campo de la tabla prueba1 en la base de datos test.

8.  ¿Podemos hacer inserciones en la base de ebanca si tenemos permisos globales de escritura y sin embargo para dicha base de datos tenemos el permiso insert an ‘N’?. Razona tu respuesta.

Creo que no porque necesitaría tener permiso de inserción y en este caso no lo tiene por lo que habría que darle el permiso insert

9.  Averigua para que sirve el permiso SUPER.

Para cerrar la conexión a otros clientes o cambiar como funciona el sevidor.

Entradas relacionadas: