unidad 07 - gestión de cuentas de usuario y permisos en mysql.pdf
TRANSCRIPT
-
7/23/2019 Unidad 07 - GESTIN DE CUENTAS DE USUARIO Y PERMISOS EN MYSQL.pdf
1/5
Unidad 07 - GESTIN DE CUENTAS DE USUARIO Y PERMISOS EN MYSQLBeatriz Snchez Prez 48535263L
Unidad 07: GESTIN DE CUENTAS DE USUARIO Y
PERMISOS EN MYSQL
Partiremos de la base de datos del tema anterior, ebanca, trabajando en consola decomandos de mysql para los comandos. Se puede utilizar phpmyadmin o MYSQLWorkbench slo para visualizar tablas.
1. Crea un usuario llamado administrador mediante la funcin CREATE USER,posteriormente con otro comando asgnale una contrasea y finalmente otrgalemediante GRANT permisos globales sobre todas las bases de datos.
create user administrador identified by '123456789'
GRANT ALL PRIVILEGES ON *.* TO administrador @'localhost' WITH GRANT OPTION
2. Elimina los permisos SUPER y GRANT del usuario admin anterior, el primero medianteel comando REVOKE y el segundo de forma manual.
REVOKE SUPER PRIVILEGES , GRANT OPTION FROM 'administrador'
REVOKE GRANT PRIVILEGES , GRANT OPTION FROM 'administrador'
3. Restringe la conexin al servidor MYSQL del usuario admin desde la IP por la quesalgas a Internet (puedes verlo tecleando en google cual es mi ip), comprobando quepuedes conectarte despus. Si te resulta posible, reinicia tu router y comprueba si tu IPexterna ha cambiado. Si es as, comprueba que efectivamente no te deja conectar porquela IP ha cambiado.
grant select on ebanca.* to 'administrador'@'192.168.1.34'
4. Documenta brevemente las funciones ENCODE, MD5 y PASSWORD de MYSQL.
ENCODE:
Sintaxis
ENCODE(str, password_str) : Encripta str utilizando como password password_str
Pgina 1 de 5
-
7/23/2019 Unidad 07 - GESTIN DE CUENTAS DE USUARIO Y PERMISOS EN MYSQL.pdf
2/5
Unidad 07 - GESTIN DE CUENTAS DE USUARIO Y PERMISOS EN MYSQLBeatriz Snchez Prez 48535263L
MD5:
Sintaxis
MD5(str) : Calcula en MD5 del string que le pasemos
PASSWORD
Sintaxis
PASSWORD(str) : Devuelve el hash password de lo que le pasemos.
5. Crea una conexin tunelizada segura con el servidor MYSQL por el puerto 5000(acurdate de abrir ese puerto en el grupo de seguridad de la mquina en EC2). Lospasos son sencillos:
Configura el servidor MYSQL para escuchar por el puerto 5000 en lugar del 3306
(acurdate de abrir ese puerto en el grupo de seguridad de la mquina en EC2)
Editaremos el archivo de configuracin my.cnf:
[mysqld]
#skip-networking
bind-address = 127.0.0.1
port = 5000
En el cliente, abre un tnel desde el puerto local 3306 al 5000 en el servidorremoto.
Levantamos el tnel desde el cliente con el siguiente comando (el tnel se establecer
una vez introducido el password):
ssh -N -L 3306:127.0.0.1:5000 administrador@localhost
Password:
- 3306:127.0.0.1:5000: abre un tnel que conecta el puerto 3306 del cliente con el
5000 del servidor, en cuyos extremos estn el cliente y el servidor SSH.
- -N: esta opcin establece el tnel, ya que indica no ejecutar comandos remotos.
- -L: indica que este extremo es el cliente del tnel.
Conctate al servidor remoto a travs del tnel, mediante Workbench, porejemplo. En este caso, el host ser localhost o 127.0.0.1, y el puerto ser el 3306(de esta forma ir a travs del tnel)
mysql -u root -h 127.0.0.1 -p
Enter password:
Pgina 2 de 5
-
7/23/2019 Unidad 07 - GESTIN DE CUENTAS DE USUARIO Y PERMISOS EN MYSQL.pdf
3/5
Unidad 07 - GESTIN DE CUENTAS DE USUARIO Y PERMISOS EN MYSQLBeatriz Snchez Prez 48535263L
mysql>
6. Crea usuarios y permisos para la base de datos ebanca conforme a la siguientedescripcin, realizando alguna prueba de funcionamiento:
Usuario administrador (con el nombre que quieras): todos los permisos
GRANT ALL PRIVILEGES ON ebanca.* TO administrator@'localhost' WITH GRANT OPTION
Usuario operador nivel 1: con acceso de lectura en todas las tablas, puede operarcon modificaciones en todas las tablas, excepto el campo saldo de cuenta, y en latabla movimiento, donde slo puede consultar. No puede modificar la estructurade ninguna tabla.
grant insert, update on ebanca.clientes to operador1@localhost
grant insert(fecha_creacion,cod_cliente,cod_cuenta),update(fecha_creacion,cod_cliente,cod_cuenta) on ebanca.cuentas to operador1@localhost
grant select on ebanca.movimientos to operador1@localhost
Usuario operador nivel 2: puede consultar todas las tablas y modificar la tablacliente y cuenta, menos los campos cod_cuenta, fecha_creacin y saldo.
Grant select on ebanca.* to operador2@localhost identified by 1234
Grant insert, update on ebanca.cliente to operado2@localhostGrant insert(cod_cliente), update(cod_cliente) on ebanca.cuenta to operador2@localhost
7. Averigua en qu campos de qu tablas de permisos de MYSQL aparecen reflejados losusuarios y restricciones del ejercicio anterior, y documntalos brevemente.
Existen 5 niveles:
- Globales: se aplican al conjunto de todas las bases de datos en un servidor. Es el nivel
ms alto de privilegio, en el sentido de que su mbito es el ms general.
- De base de datos: se refieren a bases de datos individuales, y por extensin, a todos los
objetos que contiene cada base de datos.
- De tabla: se aplican a tablas individuales, y por lo tanto, a todas las columnas de esas
tabla.
- De columna: se aplican a una columna en una tabla concreta.
- De rutina: se aplican a los procedimientos almacenados. An no hemos visto nada
sobre este tema, pero en MySQL se pueden almacenar procedimietos consistentes en
varias consultas SQL.
Pgina 3 de 5
-
7/23/2019 Unidad 07 - GESTIN DE CUENTAS DE USUARIO Y PERMISOS EN MYSQL.pdf
4/5
Unidad 07 - GESTIN DE CUENTAS DE USUARIO Y PERMISOS EN MYSQLBeatriz Snchez Prez 48535263L
8. Investiga cmo se puede recuperar la contrasea de root de mysql o establecer otranueva, si sta se pierde, y describe el proceso. Se supone que se tiene acceso a lamquina sobre la corre el MYSQL
Paramos el servidor:
sudo service mysql stop
Arrancamos mysqld_safe:
sudo mysqld_safe --skip-grant-tables
Dejamos esa consola con mysqld_safe corriendo. Abramos otra consola y hagamos lo
siguiente:
sudo mysql -u root
Una vez adentro de mysql tiramos los siguientes comandos:
Pgina 4 de 5
-
7/23/2019 Unidad 07 - GESTIN DE CUENTAS DE USUARIO Y PERMISOS EN MYSQL.pdf
5/5
Unidad 07 - GESTIN DE CUENTAS DE USUARIO Y PERMISOS EN MYSQLBeatriz Snchez Prez 48535263L
use mysql
update user set password=PASSWORD("123456789") where User='root'
flush privileges
quit
Pgina 5 de 5