unidad 07 - gestión de cuentas de usuario y permisos en mysql.pdf

Upload: beatriz-sanchez-perez

Post on 19-Feb-2018

219 views

Category:

Documents


0 download

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