Está en la página 1de 14

Práctica 3.3.

Administración de usuarios
RA3. Implanta métodos de control de acceso utilizando asistentes,
herramientas gráficas y comandos del lenguaje del sistema gestor.
c) Se han definido y eliminado cuentas de usuario.
e) Se han agrupado y desagrupado privilegios.
POR COMANDOS
En esta práctica vamos a aprender a crear usuarios en Mysql y asignarles privilegios
dependiendo de su rol en el sistema.
Para crear usuario debemos seguir la siguiente estructura:
> CREATE USER 'usuario'@'localhost' IDENTIFIED BY
'password';

 ‘usuario’ es el nombre del usuario


 ‘localhost’ es el equipo donde lo vamos a crear. Puede ser una IP
 ‘password’ es la contraseña con la que se va a autenticar el usuario en el
sistema.
Los usuarios tienen unos permisos/privilegios en el sistema.
Haz una tabla donde investigues cuáles son esos permisos. Nombre y
descripción (a qué le daríamos permiso realmente)
Para ver los permisos los podemos ver directamente de la aplicación
workbench.
 All [privileges] Permite asignar todos los permisos, menos “GRANT OPTION”
 Alter Permite hacer uso de las sentencias ALTER TABLE, con lo que ello
conlleva
 Alter routine Permite la modificación o borrado de rutinas almacenadas
 Create Permite hacer uso de la sentencia “CREATE TABLE”
 Create Routine Permite la creación de rutinas almacenadas
 Create Tablespace Permite la creación de espacios que contengan esquemas de
objetos
 Create Temporary Tablespaces Permite hacer uso de las sentencias “Create
Temporary Tablespace”, que son esquemas de objetos temporales
 Create User Permite hacer uso de la sentencia “CREATE USER” y sus asociadas
“DROP USER, RENAME USER, REVOKE “
 Create View Permite la creación de vistas dentro de las bases de datos y tablas

 Delete Permite la hacer uso del comando “DELETE” que no está destinado al
borrado de bases de datos o tablas, si no de filas y/o columnas:
 Drop Permite hacer uso de la sentencia DROP, que a su vez permite la
eliminación de BASES DE DATOS, TABLAS, VISTAS . . .
 Event Permite la creación de eventos específicos
 Execute Permite ejecutar cosas, principalmente rutinas almacenadas, aunque
puede ser útil para otras cosas
 File Permite la exportación e importación de datos desde un archivo externo
 Index Permite la creación, eliminación e incluso consulta de índices, siendo la
última de las situaciones bastante poco útil
 Insert Permite la inserción de datos en tablas
 Lock Tables Nos permite bloquear temporalmente las tablas para las que tenemos
permisos de consulta (SELECT)
 Process Nos permite lista una lista completa y detallada de los procesos llevados a
cabo
 References Aunque es un permiso que se sigue incluyendo, está desfasado, ya que
sus competencias son abarcadas por otros permisos
 Reload Permite hacer uso de los comandos FLUSH y RELOAD
 Replication Client Permite que el usuario pregunte donde se encuentran los
servidores maestros y/o esclavo
 Replication Slave Comando que nos permite crear esclavos de replicación que
consulten los logs desde el maestro
 Select Permite hacer consultas de información en tablas y/o bases de datos al
usuario que posee dicho permiso
 Show Databases Permite hacer un listado de las bases de datos que contiene el
servidor/es Show View Permite visualizar las vistas creadas anteriormente, de
modo que no tenemos que teclear los comandos que componen la vista Shutdown
Permite usar los comandos que incluyen la sentencia “”SHUTDOWN” como
“Webadmin SHUTDOWN”
 Super Permite usar los comandos de tipo “Super” como son “KILL, PUGE, SET
GLOBAL . . .”
 Trigger Permite la creación de disparadores, que no son mas que desencadenantes
de acciones dada una situación previamente definida
 Update Permite hacer uso del comando
 UPDATE, especialmente útil después de un Bloqueo o perdida de conexion

Vamos a crear un usuario llamado ‘select’ y le vamos a dar únicamente la


posibilidad de consultar la base de datos sin hacer ninguna modificación.
Introduce el comando para crear el usuario siguiendo la sintaxis anterior

Para darle únicamente el permiso de consultas a ese usuario debes hacer lo siguiente:
> GRANT SELECT ON *.* TO 'select'@'localhost';

Con este comando estás dando permisos de SELECT al usuario creado anteriormente.

Ahora vamos a conectarnos con este usuario y ver si podemos hacer select a nuestras
tablas y ver si podemos hacer otra acción que no sea un SELECT. Para ellos:
Ahora haremos el select

Ahora prueba a hacer un comando que el usuario ‘select’ no esté autorizado.


En mi caso estoy haciendo un INSERT pero como no estoy autorizado me indicada que
“command denied”.
Puedes dar acceso únicamente a una tabla concreta de la base de datos adaptando esta
sentencia.
> GRANT SELECT ON baloncesto.* TO 'select'@'localhost';
Para ello crea el usuario “person” y que tenga los permisos de INSERT,
SELECT, UPDATE, DELETE, CREATE y DROP. Muestra con
capturas que sólo puede acceder a esa bbdd.

Comprobamos que solamente podemos acceder a esa base de datos


De select :

De insert:

Si ahora lo queremos restringir únicamente a una tabla se debe adaptar la consulta para
indicar también el nombre de la tabla exacta a la que se le quiere dar acceso.
> GRANT SELECT ON baloncesto.equipos TO
'select'@'localhost';
Con esta consulta solo damos el permiso de SELECT a la tabla equipos.
Crea un usuario “equipos_baloncesto” que sólo tenga acceso al SELECT
de la tabla equipos de la bbdd baloncesto. Prueba a hacer un select a otra
tabla para que salte el error que no tiene permisos.

A continuación, le damos los permisos indicados en el enunciado a través


del siguiente comando:

A continaucion, accedemos con el usuario que acabamos de crear e intentamos hacer dos Select, uno
a una tabla cualquiera y otro a la tabla sobre la que le hemos dado permisos
Para borrar usuarios vale con el comando:
> DROP USER 'usuario'@'localhost';
Borra el último usuario por comandos y hazle capturas.

También se pueden quitar permisos a los usuarios. Se hace con la estructura:


> REVOKE UPDATE, DELETE ON *.* FROM 'usuario'@'localhost';
Adapta la sintaxis anterior para quitar los permisos CREATE y DROP al
usuario “baloncestista” que creaste antes.

Si no nos acordamos de los privilegios que tenía un usuario lo podemos hacer con el
siguiente comando:
> SHOW GRANTS for 'usuario'@'localhost';
Adapta la sintaxis anterior para ver los permisos que le quedan al usuario
“baloncestista”.
A TRAVÉS DE INTERFAZ GRÁFICA
Ahora vamos a trabajar con usuarios y permisos desde el propio sistema de Mysql
Workbench.
Arranca el Mysql Workbench y en la parte izquierda selecciona “Users & Privileges”

Comprueba que tenemos los usuarios creados anteriormente. Se observará algo como
lo siguiente:
En la pestaña Account Limits cambia para que sólo se puedan hacer dos peticiones por
hora. Haz la prueba para ver si funciona.
Para ello, lo primero que tenemos que hacer es seleccionar al usuario

Acto seguido tendremos que dar click en el apartado de “Account Limits”, donde cambiamos el
valor por defecto del número máximo de peticiones, de modo que lo dejamos de la siguiente
manera
Usuario select:

Cambia el nombre al usuario select para que se llame delete y cámbiale los
permisos para que no tenga los de select si no los de delete utilizando la
interfaz gráfica.
Para cambiar el nombre de usuario, tendremos que dirigirnos al apartado
de “login” de modo que en campo de “login name” nos aparecerá el que le
hemos puesto por defecto
Ahora desactivamos select

Ahora activamos delete

Con esta última prueba damos por terminada la práctica.

También podría gustarte