Hasta ahora hemos usado sólo el usuario 'root', que es el administrador, y que dispone de todos los privilegios disponibles en MySQL.
Sin embargo, normalmente no será una buena práctica dejar que todos los usuario con acceso al servidor tengan todos los privilegios. Para conservar la integridad de los datos y de las estructuras será conveniente que sólo algunos usuarios puedan realizar determinadas tareas, y que otras, que requieren mayor conocimiento sobre las estructuras de bases de datos y tablas, sólo puedan realizarse por un número limitado y controlado de usuarios.
Los conceptos de usuarios y privilegios están íntimamente relacionados. No se pueden crear usuarios sin asignarle al mismo tiempo privilegios. De hecho, la necesidad de crear usuarios está ligada a la necesidad de limitar las acciones que tales usuarios pueden llevar a cabo.
MySQL permite definir diferentes usuarios, y además, asignar a cada uno determinados privilegios en distintos niveles o categorías de ellos.
En MySQL existen cinco niveles distintos de privilegios:
- Globales: se aplican al conjunto de todas las bases de datos en un servidor. Es el nivel más alto de privilegio, en el sentido de que su ámbito es el más general.
- De base de datos: se refieren a bases de datos individuales, y por extensión, a todos los objetos que contiene cada base de datos.
- De tabla: se aplican a tablas individuales, y por lo tanto, a todas las columnas de esas tabla.
- De columna: se aplican a una columna en una tabla concreta.
- De rutina: se aplican a los procedimientos almacenados. Aún no hemos visto nada sobre este tema, pero en MySQL se pueden almacenar procedimietos consistentes en varias consultas SQL.
CREANDO USUARIOS
A partir de la versión MySQL 5.0.2 existe la posibilidad de crear usuarios sin necesidad de asignarles privilegios, utilizando la sentencia CREATE USER.
Primero debemos acceder como root a mysql
Segundo creamos un usuario con una contraseña
Los privilegios necesarios para ejecutar la sentencia CREATE USER son CREATE USER o bien INSERT en la base de datos mysql. El usuario recién creado no tiene privilegio alguno, por lo que deberemos asignarle permisos utilizando sentencias GRANT(esta vez sin la cláusula IDENTIFIED BY).
ASIGNARLE UNA BASE DE DATOS A UN USUARIO
En esta línea de código lo que se hace es darle permisos al usuario 'MaryBeth' sobre la base de datos contable.
ACCEDIENDO A LA BASE DE DATOS
Finalmente se muestra como se accede a la base de datos de MaryBeth
MaryBeth es un usuario que tiene todos los privilegios sobre la base de datos contable.
OTROS TIPOS DE CONCESIONES DE PRIVILEGIOS


