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