Está en la página 1de 5

Creación de Usuarios MySQL

Iniciamos sesión mediante el usuario root, cambiando previamente con el nombre Xiegdel.

Para crear un nuevo usuario con el nombre de usuario 'usuario1' y contraseña 'panama', usamos el siguiente
comando:
CREATE USER 'usuario1'@'localhost' IDENTIFIED BY 'panama;

Una vez el usuario esta creado, todo el detalle del usuario incluyendo su contraseña cifrada, se almacena en una
tabla llamada user en una base de datos especial denominada mysql.

Para validar que la cuenta se creó satisfactoriamente, ejecutamos lo siguiente:


SELECT host, user, password FROM mysql.user WHERE user='usuario1';

Otorgar privilegios a un usuario de MySQL

Los privilegios se listan separados por comas, usando la siguiente estructura:


GRANT [type of permission] ON [database name].[table name] TO ‘[username]’@'localhost’;

Si se desea otorgar algún privilegio para cualquier base de datos o tabla se hace uso del * en esta sección.

Por ejemplo se desea otorgar el privilegio INSERT y CREATE para todas las bases de datos/tablas se hace lo
siguiente:
GRANT CREATE, INSERT ON *.* TO 'usuario1'@'localhost';

Para verificar los privilegios otorgados al usuario se ejecuta el siguiente comando:


SHOW GRANTS FOR 'usuario1'@'localhost';
Para otorgar todos los privilegios para todas las bases de datos /tablas, tenemos el siguiente comando:
GRANT ALL PRIVILEGES ON * . * TO 'usuario1'@'localhost';

Otro ejemplo para conceder los privilegios UPDATE and DELETE para a base de datos llamada webdb, podemos
hacer lo siguiente:
GRANT UPDATE, DELETE ON webdb.* TO 'usuario1'@'localhost';

Muy importante luego de cualquier cambio en privilegios y configuración de usuario debemos recargar los
privilegios mediante la sentencia FLUSH PRIVILEGES;

Estos son algunos de los privilegios disponibles:

ALL: todos los privilegios disponibles


CREATE: crear base de datos, tablas, índices
LOCK_TABLES: bloquear tablas
ALTER: modificar tablas
DELETE: borrar tablas
INSERT: insertar tablas o columnas
SELECT: seleccionar tablas o columnas
CREATE_VIEW: crear vistas
SHOW_DATABASES: mostrar bases de datos
DROP: remover bases de datos, tablas o vistas
Procedemos a iniciar sesión con el usuario denominado usuario1, listamos las bases de datos a las que tenemos
acceso

Luego procedemos a confirmar los privilegios asignados, ejecutando una serie de comandos como SELECT, que
no fue asignado, en este punto se nos indica que no podemos usar ese comando, además hacemos uso del
comando CREATE para crear una nueva tabla sobre la base de datos maestria, este si es permitido porque es
uno de los privilegios asignados.
Remoción de privilegios a un usuario de MySQL

También podemos remover privilegios de un usuario, para remover un privilegio específico usamos el siguiente
formato:
REVOKE [type of permission] ON [database name].[table name] FROM ‘[username]’@‘localhost’;

Para remover el permiso específico de UPDATE sobre la base de datos webdb, usamos lo siguiente:
REVOKE UPDATE ON webdb.* FROM 'usuario1'@'localhost';

Si buscamos remover todos los privilegios de un usuario específico podemos hacer uso de la siguiente línea:
REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'usuario1'@'localhost';

Remoción de un usuario de MySQL


Para remover un usuario específico podemos hacer uso del comando DROP USER, seguido se debe especificar el nombre
de usuario que se desea eliminar.
Añadir Límites de recursos a MySQL usuario

En MySQL, puede poner límites a la utilización de recursos para usuarios individuales. Los límites de los recursos
disponibles son los siguientes:

MAX_QUERIES_PER_HOUR: número de consultas por hora permitidos.


MAX_UPDATES_PER_HOUR: número de cambios permitidos por hora.
MAX_CONNECTIONS_PER_HOUR: número de inicios de sesión permitidos por hora.
MAX_USER_CONNECTIONS: número de conexiones simultáneas al servidor.

Para agregar un límite de recursos a la cuenta myuser, se usa el siguiente patrón:

GRANT USAGE ON <database>.<table> TO 'myuser'@'localhost' WITH <resource-limits>;

En < resource-limits >, puede especificar varios límites de recursos separados por espacio.

Por ejemplo para agregar limite a la cantidad de consultas y conexiones por hora para el usuario myuser podemos hacer
lo siguiente:

GRANT USAGE ON *.* TO 'myuser'@'localhost' WITH MAX_QUERIES_PER_HOUR 2 MAX_CONNECTIONS_PER_HOUR 2;

El número 2 corresponde al límite establecido para este recurso, si se desea volver a establecer sin límite, se debe cambiar
por el número 0.

Para validar estas limitaciones de recursos hacemos uso de la instrucción:


SHOW GRANTS FOR 'myuser'@'localhost;

Recodar siempre hacer uso de la instrucción FLUSH PRIVILEGES; y así recargar los privilegios.

También podría gustarte