Pregunta:
Entiendo cómo crear un nuevo usuario con privilegios, pero ¿cuál es la forma correcta de cambiar los privilegios para los usuarios que ya están creados?
Estamos ejecutando una auditoría de base de datos y algunos de los usuarios tienen mucho más acceso del necesario. Además, no conozco las contraseñas de la mayoría de estos usuarios de MySQL, por lo que no quiero eliminarlas y crear nuevas.
Respuesta:
Para enumerar usuarios:
select user,host from mysql.user;
Para mostrar privilegios:
show grants for 'user'@'host';
Para cambiar los privilegios, primero revoque. Tal como:
revoke all privileges on *.* from 'user'@'host';
Luego, conceda los privilegios adecuados según lo desee:
grant SELECT,INSERT,UPDATE,DELETE ON `db`.* TO 'user'@'host';
Finalmente, enjuague:
flush privileges;
La documentación de MySQL es excelente: