Sie sind auf Seite 1von 7

GESTIÓN DE CUENTAS DE USUARIO Y PERMISOS EN MYSQL

Partiremos de la base de datos del tema anterior, ebanca, trabajando en consola de


comandos de mysql para los comandos. Se puede utilizar phpmyadmin o MYSQL Workbench
sólo para visualizar tablas.

1. Crea un usuario llamado administrador mediante la función CREATE USER,


posteriormente con otro comando asígnale una contraseña y finalmente otórgale mediante
GRANT permisos globales sobre todas las bases de datos.

2. Elimina los permisos SUPER y GRANT del usuario admin anterior, el primero mediante
el comando REVOKE y el segundo de forma manual.

En phpmyadmin a la base de datos MYSQL y a la tabla USER.


En el usuario administrador hacemos click en Editar

Marcamos la N y click en Continuar para guardar los cambios

1 Manuel Ramos Cabot


GESTIÓN DE CUENTAS DE USUARIO Y PERMISOS EN MYSQL

3. Restringe la conexión al servidor MYSQL del usuario admin desde la IP por la que salgas a
Internet (puedes verlo tecleando en google “cual es mi ip”), comprobando que puedes conectarte
después. Si te resulta posible, reinicia tu router y comprueba si tu IP externa ha cambiado. Si
es así, comprueba que efectivamente no te deja conectar porque la IP ha cambiado.

4. Documenta brevemente las funciones ENCODE, MD5 y PASSWORD de


MYSQL.

ENCODE Encripta la cadena str usando como contraseña pass_str. Para desencriptar el resultado
usar . El resultado es una cadena binaria de la misma longitud que string.
ENCODE(str,pass_str)

MD5 Almacena contraseñas encriptadas. Calcula un checksum MD5 de 128 bits para la cadena
string. El valor se devuelve como un número hexadecimal de 32 dígitos

mysql> SELECT MD5(‘unapalabrasecreta’);


+—————————————————+
| MD5(‘unapalabrasecreta’) |
+—————————————————+
| adf5f3246000cfba3bcba28917fc6a89 |
+—————————————————+
PASSWORD Calcula una cadena contraseña a partir de la cadena en texto plano str. Esta es la

2 Manuel Ramos Cabot


GESTIÓN DE CUENTAS DE USUARIO Y PERMISOS EN MYSQL

función que se usa para encriptar contraseñas MySQL para almacenarlas en las columnas Password
de la tabla de concesiones de usuario.

mysql> SELECT PASSWORD('badpwd');


-> '7f84554057dd964b'

5. Crea una conexión tunelizada segura con el servidor MYSQL por el puerto 5000
(acuérdate de abrir ese puerto en el grupo de seguridad de la máquina en EC2). Los pasos son
sencillos:

Configura el servidor MYSQL para escuchar por el puerto 5000 en lugar del 3306
(acuérdate de abrir ese puerto en el grupo de seguridad de la máquina en EC2)

En el cliente, abre un túnel desde el puerto local 3306 al 5000 en el
servidor remoto.

Conéctate al servidor remoto a través del túnel, mediante Workbench, por ejemplo.
En este caso, el host será localhost o 127.0.0.1, y el puerto será el 3306 (de esta
forma irá a través del túnel).

Configuramos el tunel

Abrimos Mysql Workbench e introducimos el nombre de la conexión, nombre del host, puerto y
nombre de usuario y click en OK

3 Manuel Ramos Cabot


GESTIÓN DE CUENTAS DE USUARIO Y PERMISOS EN MYSQL

Nos aparece la conexión y introducimos la contraseña y OK

6. Crea usuarios y permisos para la base de datos ebanca conforme a la siguiente descripción,
realizando alguna prueba de funcionamiento:
Usuario administrador (con el nombre que quieras): todos los permisos

Usuario operador nivel 1: con acceso de lectura en todas las tablas, puede operar con
modificaciones en todas las tablas, excepto el campo saldo de cuenta, y en la tabla movimiento,
donde sólo puede consultar. No puede modificar la estructura de ninguna tabla.

4 Manuel Ramos Cabot


GESTIÓN DE CUENTAS DE USUARIO Y PERMISOS EN MYSQL

Usuario operador nivel 2: puede consultar todas las tablas y modificar la tabla cliente y cuenta,
menos los campos cod_cuenta, fecha_creación y saldo.

7. Averigua en qué campos de qué tablas de permisos de MYSQL aparecen reflejados los
usuarios y restricciones del ejercicio anterior, y documéntalos brevemente.

En la tabla 'user' los permisos son globales, los usuarios creados aparecen con los permisos en N
pues son aplicados sobre una sola base de datos.

5 Manuel Ramos Cabot


GESTIÓN DE CUENTAS DE USUARIO Y PERMISOS EN MYSQL

Tabla de permisos 'columns_priv'

Tabla de permisos 'db'

Tabla de permisos 'tables_priv'

8. Investiga cómo se puede recuperar la contraseña de root de mysql o establecer otra


nueva, si ésta se pierde, y describe el proceso. Se supone que se tiene acceso a la máquina
sobre la corre el MYSQL

Detenemos el servicio ejecutando 'service mysql stop'

Ejecutamos mysqld_safe con la opción --skip-grant-tables, enviando el proceso a segundo plano

Ingresamos al intérprete de mandatos de MySQL ejecutando 'mysql' sin argumentos u opciones

Ejecutamos lo siguiente ingresando la nueva contraseña y salimos del interprete con 'exit'

6 Manuel Ramos Cabot


GESTIÓN DE CUENTAS DE USUARIO Y PERMISOS EN MYSQL

Detenemos el servicio ejecutando 'mysqladmin' con la opción -p y shutdown como argumento. Se


solicitará se ingrese la nueva contraseña asignada.

Iniciamos MySQL ejecutando service mysql start

Comprobamos el cambio de contraseña ejecutando mysql y la opción -p e ingresamos la nueva


contraseña

7 Manuel Ramos Cabot

Das könnte Ihnen auch gefallen