Categorías
MySQL

Asignar privilegios a un usuario MySQL con GRANT

Veamos unos ejemplos de la función GRANT de MySQL. Es el método más utilizado para asignar privilegios:

GRANT privilegios

ON base/tabla

TO usuario [IDENTIFIED by ´contraseña´]

[WITH GRANT OPTION];

La opción WITH GRANT OPTION facilita al usuario el poder de darle a otros usuarios sus mismos privilegios.

Con la siguiente línea se darían todos los permisos (excepto WITH GRANT OPTION) a un usuario sobre una base de datos determinada:

GRANT ALL ON BD.* TO usuario@localhost IDENTIFIED BY «contraseña»

Para conceder todos los permisos, incluido el WITH GRANT OPTION, hay que teclar lo siguiente:

GRANT ALL ON BD.* TO usuario@localhost IDENTIFIED BY «contraseña» WITH GRANT OPTION;

El ejemplo anterior es inseguro, únicamente el usuario administrador debería poder agregar o eliminar privilegios.

De la siguiente forma únicamente le darías permiso para realizar algunas consultas sobre la base de datos. En este caso el usuario no puede crear nuevas tablas ni nuevas bases de datos:

GRANT select,insert,update,delete ON BD.* TO usuario@localhost IDENTIFIED BY «contraseña»;

Retirar permisos se hace con la función REVOKE. Su sintaxis es muy similar a la de GRANT:

REVOKE privilegios

ON base/tabla

FROM usuario

Ejemplo para quitar todos los permisos del usuario.

REVOKE ALL ON BD.* from usuario@localhost