= manejo de usuarios en MySQL {{tag>bbdd mysql user}} == para acceder al servidor desde una máquina local shell> mysql --user=root mysql -p == crear cuentas de usuario [[https://dev.mysql.com/doc/refman/5.5/en/privileges-provided.html#priv_index|permisos y que implican]] # ver usuarios creados SELECT user,authentication_string,plugin,host FROM mysql.user; # cambiar root ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password'; # guardar los cambios FLUSH PRIVILEGES; crea "dos" usuarios (el mismo, para acceder desde hosts diferentes), dándoles todos los privilegios mysql> CREATE USER 'monty'@'localhost' IDENTIFIED BY 'some_pass'; mysql> GRANT ALL PRIVILEGES ON *.* TO 'monty'@'localhost' WITH GRANT OPTION; mysql> CREATE USER 'monty'@'%' IDENTIFIED BY 'some_pass'; mysql> GRANT ALL PRIVILEGES ON *.* TO 'monty'@'%' WITH GRANT OPTION; crea un usuario par localhost **sin contraseña** que puede hacer hacer RELOAD y PROCESS (un usuario de emergencia para sistemas) mysql> CREATE USER 'admin'@'localhost'; mysql> GRANT RELOAD,PROCESS ON *.* TO 'admin'@'localhost'; para ver los permisos que tiene un usuario mysql> SHOW GRANTS FOR 'admin'@'localhost'; asignar permisos concretos a usuarios: mysql> CREATE USER 'custom'@'localhost' IDENTIFIED BY 'obscure'; mysql> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP -> ON bankaccount.* -> TO 'custom'@'localhost'; revocar permisos: mysql> REVOKE ALL ON *.* FROM 'user'@'localhost'; == resetear contraseña /via: [[https://www.ochobitshacenunbyte.com/2018/06/13/cambiar-contrasenas-de-usuarios-en-mysql-y-mariadb/]] # versiones anteriores 5.7.5 SET PASSWORD FOR root@localhost=PASSWORD(''); # versiones posteriores 5.7.5 UPDATE mysql.user SET Password=PASSWORD(‘NuevaContraseña’) WHERE USER=’nombreUsuario’ AND Host=”NombreHost”; FLUSH PRIVILEGES; ALTER USER ‘nombreUsuario’@’localhost’ IDENTIFIED BY ‘NuevaContraseña’;