Beruflich Dokumente
Kultur Dokumente
USER HOST
‘’ ‘%’
‘’ ‘%.asir.com’
‘admin_blog’ ‘localhost’
‘user’ ‘122.233.155.0/24’
Las columnas de alcance (user y host) de la tabla user determinan si se rechazan o permiten
conexiones entrantes.
El servidor solo acepta la conexión si las columnas Host y User de alguna de las tablas user es
coincidente con el nombre de la máquina y usuario del cliente, y además el cliente proporciona la clave
especificada en ese registro.
En la columna User, los caracteres comodín no están permitidos, pero podemos especificar un
valor en blanco, que será válido para cualquier nombre, en tal caso el usuario es considerado anónimo, sin
nombre de usuario, no un usuario con el nombre que el cliente especificó realmente.
En este caso existen 3 usuarios diferentes (anónimo, admin_blog y user) que se pueden conectar
desde 4 host diferentes (cualquiera, cualquiera de la web asir.com, localhost y cualquiera de la red
122.233.155.0).
5. Supón que tenemos los siguientes valores sobre la tabla user para los campos host y
user
USER HOST
‘u_ebanca’ asir.com
asir.com ‘’
‘’ ‘u_ebanca’
Cuando se conecte el usuario u_banca, ¿con qué cuenta lo hará?
Si el usuario u_banca se conecta desde el host u_ebanca lo hará como anónimo, en caso contrario
se rechazará la conexión.
6. Crea un usuario local llamado u1 sin contraseña. ¿Qué puede hacer sobre la base de
datos test? Crea ahora 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 dándole a u1 solo permisos de actualización sobre dicha tabla. Intenta
modificar una fila. Haz lo necesario para conseguirlo. Explica.
>mysql –u u1 –p
USE test;
UPDATE FROM prueba1 SET cod = 3 WHERE cod = 1;
Para darle permiso de modificación únicamente sobre esa tabla tendríamos que cambiar los
permisos en la tabla db puesto que la base de datos test tiene permiso para cualquier usuario desde
cualquier host que se conecte para hacer cualquier operación sobre ella y solo sobre ella.
7. ¿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 a ‘N’?
Sí, un permiso global permite hacer cualquier cosa en cualquier base de datos, incluso aunque no
tengas permiso explicito sobre esa base de datos..
8. Crea un usuario local nuevo llamado admin con CREATE USER, asígnale la
contraseña admin encriptándola y dale permisos globales sobre todas las bases de
datos con GRANT.
CREATE USER admin@localhost IDENTIFIED BY ‘admin’;
GRANT ALL ON *.* TO admin@localhost;
9. Elimina el permiso SUPER y GRANT del usuario admin anterior, de dos formas
distintas: con REVOKE y de manera manual.
REVOKE SUPER, GRANT OPTION ON *.* FROM admin@localhost;
UPDATE mysql.user SET super_priv = ‘N’, grant_priv = ‘N’ WHERE user = ‘admin’ AND host
= ‘localhost’;
10. Haz lo necesario para que el usuario admin ebanca pueda conectarse a la base de
datos ebanca desde una única IP www.asir.com
CREATE USER admin_ebanca@www.asir.com;
11. ¿Qué ocurre si intentamos crear un usuario con contraseña con el comando
CREATE USER sin usar la función PASSWORD?, ¿podemos conocer la contraseña
original de un usuario?
Crear un usuario con CREATE USER crea el usuario y encripta la contraseña. Después la única
posibilidad para poder ver la contraseña original sería utilizar privilegios como PROCESS que investigen
en los procesos de los usuarios.
12. ¿Con que cinco permisos deberíamos ser más cautelosos a la hora de concederlos y
por qué?
Los permisos más peligrosos a la hora de manejarlos y concederlos corresponden a los que tienen
nivel de administrador y que solo se encuentran en la tabla user. Por ejemplo:
LOCK TABLES
PROCESS
RELOAD
SHUTDOWN
SUPER