Conceder y quitar privilegios en MySQL

Advertencia

Es muy recomendable realizar siempre una copia de seguridad de las base de datos, siempre que vayas a ejecutar cambios importantes en ella.

La función GRANT es la utilizada para facilitar 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 query darías todos los permisos ( excepto WITH GRANT OPTION) a un usuario sobre una base de datos especificada:

GRANT ALL ON BD.* TO USER@localhost IDENTIFIED BY "PASSWORD"

Para dar todos los permisos, incluido el WITH GRANT OPTION, debe de indicarse con su opción pertinente:

GRANT ALL ON BD.* TO USER@localhost IDENTIFIED BY "PASSWORD" WITH GRANT OPTION;

Cabe destacar que esto no es aconsejable, y es altamente inseguro ya que únicamente el usuario administrador debería poder agregar o eliminar privilegios.

De la siguiente forma únicamente le darías permiso para realizar algunas querys sobre la base de datos. Cabe destacar que el usuario no podría crear nuevas tablas ni nuevas bases de datos:

GRANT select,insert,update,delete ON BD.* TO USER@localhost IDENTIFIED BY "PASSWORD";

La función REVOKE es empleada para retirar privilegios a los usuarios. Su sintaxis es muy similar a la de GRANT:

REVOKE privilegios
ON base/tabla
FROM usuario

De este modo quitarías todos los permisos del usuario.

REVOKE ALL ON BD.* from USER@localhost

Para comentar sobre este artículo, rellena el formulario. Los campos marcados con un asterisco (*) son obligatorios.


*