Vous êtes sur la page 1sur 5

Unidad07GESTINDECUENTASDEUSUARIOYPERMISOSENMYSQL

BeatrizSnchezPrez48535263L

Unidad 07: GESTIN 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
Workbenchsloparavisualizartablas.

1. Crea un usuario llamado administrador mediante la funcin CREATE USER,


posteriormente con otro comando asgnale una contrasea y finalmente otrgale
medianteGRANTpermisosglobalessobretodaslasbasesdedatos.

createuseradministradoridentifiedby'123456789'

GRANTALLPRIVILEGESON*.*TOadministrador@'localhost'WITHGRANTOPTION

2. Elimina los permisosSUPERyGRANTdelusuarioadminanterior,elprimeromediante


elcomandoREVOKEyelsegundodeformamanual.

REVOKESUPERPRIVILEGES,GRANTOPTIONFROM'administrador'
REVOKEGRANTPRIVILEGES,GRANTOPTIONFROM'administrador'

3. Restringe la conexin 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 despus. Si te resulta posible, reinicia tu router y comprueba si tuIP
externahacambiado.Siesas,compruebaqueefectivamentenotedejaconectarporque
laIPhacambiado.

grantselectonebanca.*to'administrador'@'192.168.1.34'

4.DocumentabrevementelasfuncionesENCODE,MD5yPASSWORDdeMYSQL.

ENCODE:

Sintaxis
ENCODE(str,password_str):Encriptastrutilizandocomopasswordpassword_str

Pgina1de5

Unidad07GESTINDECUENTASDEUSUARIOYPERMISOSENMYSQL
BeatrizSnchezPrez48535263L
MD5:

Sintaxis
MD5(str):CalculaenMD5delstringquelepasemos

PASSWORD

Sintaxis
PASSWORD(str):Devuelveelhashpassworddeloquelepasemos.

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). Los
pasossonsencillos:

Configura el servidor MYSQL para escuchar por el puerto 5000 en lugar del 3306
(acurdatedeabriresepuertoenelgrupodeseguridaddelamquinaenEC2)

Editaremoselarchivodeconfiguracinmy.cnf:
[mysqld]
#skipnetworking
bindaddress=127.0.0.1
port=5000

En el cliente, abre un tnel desde el puerto local 3306 al 5000 en el servidor


remoto.

Levantamoseltneldesdeelclienteconelsiguientecomando(eltnelseestablecer
unavezintroducidoelpassword):
sshNL3306:127.0.0.1:5000administrador@localhost
Password:

3306:127.0.0.1:5000:abreuntnelqueconectaelpuerto3306delclienteconel
5000delservidor,encuyosextremosestnelclienteyelservidorSSH.
N:estaopcinestableceeltnel,yaqueindicanoejecutarcomandosremotos.
L:indicaqueesteextremoeselclientedeltnel.

Conctate al servidor remoto a travs del tnel, mediante Workbench, por


ejemplo. En este caso, el host ser localhost o 127.0.0.1, y el puerto ser el 3306
(deestaformairatravsdeltnel)

mysqlurooth127.0.0.1p
Enterpassword:

Pgina2de5

Unidad07GESTINDECUENTASDEUSUARIOYPERMISOSENMYSQL
BeatrizSnchezPrez48535263L
mysql>

6. Crea usuarios y permisos para la base de datos ebanca conforme a la siguiente


descripcin,realizandoalgunapruebadefuncionamiento:
Usuarioadministrador(conelnombrequequieras):todoslospermisos

GRANTALLPRIVILEGESONebanca.*TOadministrator@'localhost'WITHGRANTOPTION

Usuario operador nivel 1: con accesodelecturaen todaslastablas,puedeoperar


con modificaciones en todas lastablas,exceptoelcamposaldodecuenta,yen la
tabla movimiento, donde slo puede consultar. No puede modificar la estructura
deningunatabla.

grantinsert,updateonebanca.clientestooperador1@localhost
grantinsert(fecha_creacion,cod_cliente,cod_cuenta),
update(fecha_creacion,cod_cliente,cod_cuenta)onebanca.cuentastooperador1@localhost
grantselectonebanca.movimientostooperador1@localhost

Usuario operador nivel 2: puede consultar todas las tablas y modificar la tabla
clienteycuenta,menosloscamposcod_cuenta,fecha_creacinysaldo.

Grantselectonebanca.*tooperador2@localhostidentifiedby1234
Grantinsert,updateonebanca.clientetooperado2@localhost
Grantinsert(cod_cliente),update(cod_cliente)onebanca.cuentatooperador2@localhost

7. AveriguaenqucamposdequtablasdepermisosdeMYSQLaparecenreflejadoslos
usuariosyrestriccionesdelejercicioanterior,ydocumntalosbrevemente.

Existen5niveles:
Globales:seaplicanalconjuntodetodaslasbasesdedatosenunservidor.Eselnivel
msaltodeprivilegio,enelsentidodequesumbitoeselmsgeneral.
Debasededatos:serefierenabasesdedatosindividuales,yporextensin,atodoslos
objetosquecontienecadabasededatos.
Detabla:seaplicanatablasindividuales,yporlotanto,atodaslascolumnasdeesas
tabla.
Decolumna:seaplicanaunacolumnaenunatablaconcreta.
Derutina:seaplicanalosprocedimientosalmacenados.Annohemosvistonada
sobreestetema,peroenMySQLsepuedenalmacenarprocedimietosconsistentesen
variasconsultasSQL.
Pgina3de5

Unidad07GESTINDECUENTASDEUSUARIOYPERMISOSENMYSQL
BeatrizSnchezPrez48535263L

8. Investiga cmo se puede recuperar la contrasea de root de mysql o establecer otra


nueva, si sta se pierde, y describe el proceso. Se supone que se tiene acceso a la
mquinasobrelacorreelMYSQL

Paramoselservidor:
sudoservicemysqlstop

Arrancamosmysqld_safe:
sudomysqld_safeskipgranttables

Dejamosesaconsolaconmysqld_safecorriendo.Abramosotraconsolayhagamoslo
siguiente:
sudomysqluroot

Unavezadentrodemysqltiramoslossiguientescomandos:
Pgina4de5

Unidad07GESTINDECUENTASDEUSUARIOYPERMISOSENMYSQL
BeatrizSnchezPrez48535263L
usemysql
updateusersetpassword=PASSWORD("123456789")whereUser='root'
flushprivileges
quit

Pgina5de5