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
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> 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



Auri
noviembre 13, 2008
Muy buen post! gracias!!
pablo
diciembre 12, 2009
brillante post, gracias por iliminarnos el camino.
Diego
octubre 20, 2010
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.
Pancho
noviembre 30, 2010
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.
guido
marzo 11, 2011
Muy buen post gracias no podia conectar odbc por un problema de permisos GRacias;;
dua
junio 1, 2011
Muy buen tutorial me sirvio mucho. Gracias.
dsg
agosto 20, 2011
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.
JAVIER
octubre 24, 2011
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
mar
octubre 26, 2011
excelente post !! ;D
vidal
noviembre 24, 2011
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 …
marcos
abril 27, 2012
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 ?