Crear usuario y asignar permisos en MySQL

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)</code>

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

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

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

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

mysql&gt; FLUSH PRIVILEGES;

Basdado en la publicación original de JavoAxian

11 comentario en este artículoDeje el suyo
  1. Muy buen post! gracias!! :D

  2. brillante post, gracias por iliminarnos el camino.

  3. Cual es la diferencia entre crear los usuarios con la sentencia

    WITH GRANT OPTION y no poner esa sentencia.

    Alguien me podria decir para que sirve?

    Saludos.

  4. Diego, cuando creas un usuario y le das privilegios terminando la sentencia con “WITH GRANT OPTION”, quiere decir que ese usuario va a tener la opción de dar también privilegios a otros usuarios (Grant).

    Ojalá te aclare algo esto.

  5. Muy buen post gracias no podia conectar odbc por un problema de permisos GRacias;;

  6. Muy buen tutorial me sirvio mucho. Gracias.

  7. Un duda, pera que mi usuario que yo cree con root acceda desde cualquier punto es solo @, pero tambien deseo que ese usuarios tenga permiso de crear usuarios, cual es ese privileges que le tengo que dar miusuarios?

    Gracias.

  8. disculpa que pass es el que me pide por q pongo el de mi root pero no me deja acceder como puedo haser para reparar eso por favor

  9. excelente post !! ;D

  10. oie y desde java para ingresar con usuario conectandolo a mysql oviamente y buscarlo todo me corre bien el problema es que la contraseña, mysql lo encripta automaticamente y asi ia no puedo entrar aunque el usuario si se aya creado, ¿como hacer el proceso en java para encriptar la contraseña y asi buscarla en mysql …

  11. yo tengo tres tablas en un base de datos y tres usuarios con contraseña , qiero q cada usuario tenga el acceso a una sola tabla como lo ago ?

2 menciones a este artículo
Deje su comentario

Por favor, ingrese su nombre

Por favor, ingrese un correo-e válido

Por favor, ingrese su mensaje

luauf.com 2012