Actualizado el domingo, 19 junio, 2016
MySQL es un motor de base de datos que ademas es de código libre. Ayuda inmejorablemente a los users a almacenar, organizar, etc…. Posee una gran variedad de opciones para otorgar permisos entre tablas y bases de datos a diversos usuarios. Veremos como crear nuevos usuarios, como otorgar permisos y sus variables.
Empezamos creando un nuevo usuario desde la consola de MySQL:
CREATE USER 'usuario'@'localhost' IDENTIFIED BY 'password';
Al intentar identificarse (con la contraseña), no podrá acceder a la consola de MySQL, para ello debemos otorgarle permisos:
GRANT ALL PRIVILEGES ON * . * TO 'usuario'@'localhost';
Los asteriscos se refieren a la base de datos y la tabla que tendrá acceso el usuario recién creado. Con este comando le permitimos al usuario leer, editar, ejecutar y realizar cualquier tipo de tarea en todas las db y tablas.
Para que los cambios surtan efecto debes refrescar los privilegios.
FLUSH PRIVILEGES;
Permisos a usuarios:
Estos son los permisos que los usuarios pueden tener.
- ALL PRIVILEGES: permite al usuario acceder a todas las bases de datos definidas.
- CREATE: permite crear nuevas tablas o bases de datos.
- DROP: permite eliminar tablas o bases de datos.
- DELETE: permite eliminar registros de tablas.
- INSERT: permite insertar registros en tablas.
- SELECT: permite leer registros en las tablas.
- UPDATE: permite actualizar registros seleccionados en tablas.
- GRANT OPTION: permite modificar privilegios de usuarios.
Para darle permisos a usuario específico, puedes realizarlo de esta forma:
GRANT [permiso] ON [nombre de bases de datos].[nombre de tabla] TO ‘[nombre de usuario]’@'localhost’;
Si le das permisos a todas las bases de datos y tablas… sustituye el nombre de la db por un asterisco.
Si quieres borrar un permiso, sería muy similar a la anterior:
REVOKE [permiso] ON [nombre de base de datos].[nombre de tabla] FROM ‘[nombre de usuario]’@‘localhost’;
Puedes borrar usuarios con:
DROP USER ‘usuario’@‘localhost’;
Recuerda que en cada modificación debes hacer un:
FLUSH PRIVILEGES;
Por ultimo probaremos el nuevo usuario, cerramos sesión:
quit
Iniciamos sesión con el nuevo usuario en consola:
mysql -u [usuario]-p