En esta ocasión veremos un pequeño ejemplo, donde por medio del comando GRANT crearemos dos cuentas de usuario en MySQL y le daremos permisos a las mismas.

El caso a resolver será el siguiente:

  • Crear una nueva base de datos
  • Crear un usuario administrador para esa base de datos que solo se pueda conectar localmente
  • Crear un usuario de consulta para la base de datos que se pueda conectar remotamente

Los pasos a seguir son los siguientes:

  • Nos conectamos a la base de datos como root
  • Creamos una nueva base de datos (CREATE DATABASE)
  • Creamos un nuevo usuario para que localmente (desde el localhost) tenga todos los privilegios sobre la tabla creada.
  • Creamos un nuevo usuario, para que remotamente (%) tenga acceso de lectura (SELECT) a todos los objetos de la tabla creada.
  • Finalmente, actualizamos los permisos con FLUSH PRIVILEGES

$ mysql -uroot -p
Enter password:
Welcome to the MySQL monitor. Commands END with ; or \g.
Your MySQL connection id is 9
Server version: 5.0.51a-3ubuntu5.1 (Ubuntu)

Type 'help;' or '\h' for HELP. Type '\c' to clear the buffer.

mysql> CREATE DATABASE crm;
Query OK, 1 row affected (0.22 sec)

mysql> GRANT ALL PRIVILEGES ON crm.* TO 'rootcrm'@'localhost' IDENTIFIED BY 'contrasenia' WITH GRANT OPTION;
Query OK, 0 rows affected (0.19 sec)

mysql> GRANT SELECT ON crm.* TO 'readercrm'@'%' IDENTIFIED BY 'contrasenia' WITH GRANT OPTION;
Query OK, 0 rows affected (0.00 sec)

mysql> FLUSH PRIVILEGES;

Basdado en la publicación original de JavoAxian