Crear un nuevo usuario

 

Primero ingresamos en la Shell MySQL; para ingresar como usuario root ejecutamos el siguiente comando:

mysql -u root -p

Tenemos que introducir la contraseña de usuario root MySQL (recuerde no confundir con la contraseña del usuario root del servidor).

Ahora creamos un usuario desde el Shell MySQL:

CREATE USER 'nuevousuario'@'localhost' IDENTIFIED BY 'contraseña';

En este punto, nuevousuario  no tiene permisos para hacer nada con la base datos. De hecho, si  nuevousuario  intenta iniciar sesión (con la contraseña contraseña) no podrá ni siquiera llegar hasta el shell MySQL.

 

 

Dar todos los permisos al nuevo usuario

 

Por lo tanto, lo primero que debe hacer es proporcionar al usuario el acceso a la información que necesita.

GRANT ALL PRIVILEGES ON * . * TO 'nuevousuario'@'localhost';

Los asteriscos en este comando se refieren a la base de datos y a la tabla (respectivamente) a las que el usuario puede acceder; este comando específico le permitiría a nuevousuario leer, editar, ejecutar y realizar todas las tareas dentro de todas las tablas y bases de datos. ¡Esto es debido a que el asterisco * representa todo!, en este caso: todas las bases de datos y todas las tablas.

Una vez que haya terminado de asignar los permisos que quiere establecer para sus nuevos usuarios, siempre asegúrese de volver a cargar todos los privilegios. Usando el siguiente comando:

FLUSH PRIVILEGES;

Ahora los cambios surtirán efecto.

Cómo otorgar permisos diferentes a los usuarios
A continuación una lista breve de otras posibilidades de permisos comunes que un usuario podría tener:

ALL PRIVILEGES: tal como vimos antes, esto permitiría que un usuario MySQL accediera completamente a la base de datos designada (o si no se selecciona una base de datos en particular, el usuario tendría acceso a todo el sistema);
CREATE: les permite a los usuarios crear nuevas tablas o bases de datos;
DROP: les permite eliminar tablas o bases de datos;
DELETE: les permite eliminar filas de tablas;
INSERT: les permite insertar filas en tablas;
SELECT: les permite usar el comando SELECT para consultar información en bases de datos;
UPDATE: les permite actualizar filas en tablas;
GRANT OPTION: les permite otorgar o suprimir privilegios de otros usuarios de la manera que vimos anteriormente, esto le daría a un usuario MySQL todo el acceso a una base de datos designada (o si no se selecciona una base de datos en particular, a todo el sistema).
Para proporcionar un permiso específico a un usuario, puede usar la siguiente estructura:

 

GRANT [tipo de permiso] ON [nombre de la base de datos].[nombre de la tabla] TO '[nombredeusuario]'@'localhost';

 

Si usted desea otorgar acceso a cualquier base de datos o a cualquier tabla, asegúrese de poner un asterisco (*) en lugar del nombre de la base de datos o el nombre de la tabla.

Cada vez que actualice o cambie un permiso, asegúrese de utilizar el comando FLUSH PRIVILEGES mencionado anteriormente.

 

 

Revocar permisos

 

Si usted necesita revocar un permiso, la estructura es casi idéntica a la primera:

REVOKE [tipo de permiso] ON [nombre de la base de datos].[nombre de la tabla] FROM '[nombredeusuario]'@'localhost';

Tal como se pueden eliminar bases de datos usando DROP, puede usar DROP para borrar un usuario completamente:

DROP USER 'usuariodeejemplo'@'localhost';

 

 

Probar el nuevo usuario

 

Para probar un usuario nuevo, cierre sesión usando:

quit

Y vuelva a ingresar con este comando en su terminal:

mysql -u nombredeusuario -p


Las combinaciones para el otorgamiento o revocación de permisos son innumerables y dependerán de la configuración de sus bases de datos y de los usuarios que tendrán acceso a estas. Puede hacer distintas pruebas antes de que su plataforma entre en producción, una vez ahí debe tener más cuidado con los comandos que ejecute y los permisos que otorgue en MySQL.

 

 

Cambiar la contraseña de un usuario

 

A continuación, iniciaremos sesión en el servidor de bases de datos como root:

mysql -u root -p

Por motivos de compatibilidad entre distintas versiones, utilizaremos el siguiente comando para actualizar la tabla user dentro de la base de datos mysql. Tengamos en cuenta que tendremos que cambiar MiClaveAqui por la contraseña que hayamos elegido:

 

use mysql;
update user set password=PASSWORD('MiClaveAqui') where User='root';
flush privileges;

 

El próximo paso consistirá en salir de la sesión actual al escribir

quit

 

 

Activar usuario root en phpmyadmin 

 

A continuación, iniciaremos sesión en el servidor de bases de datos como root:

mysql -u root -p

Por motivos de compatibilidad entre distintas versiones, utilizaremos el siguiente comando para actualizar la tabla user dentro de la base de datos mysql. Tengamos en cuenta que tendremos que cambiar MiClaveAqui por la contraseña que hayamos elegido:

 

use mysql;
update user set password=PASSWORD('MiClaveAqui') where User='root';
update user set plugin=' ' where User='root';
flush privileges;

 

El próximo paso consistirá en salir de la sesión actual al escribir

quit