mysql.h


DROP USER

DROP USER user [, user] ...

La sentencia DROP USER elimina una o más cuentas MySQL. Para usarla se debe poseer el privilegio GRANT OPTION para la base de datos mysql. Cada cuenta se nombra usando el mismo formato que para GRANT o REVOKE; por ejemplo, 'jeffrey'@'localhost'. Las partes del usuario y la máquina del nombre de la cuenta corresponden a los valores de las columnas User y Host del registro de la tabla user para la cuenta.

DROP USER se añadió en MySQL 4.1.1 y originalmente sólo borra cuentas que no tengan privilegios. En MySQL 5.0.2, fue modificada para borrar también cuentas que tengan privilegios. Esto significa que el procedimiento para eliminar una cuenta depende de la versión de MySQL.

Desde MySQL 5.0.2, se puede borrar una cuenta y sus privilegios mediante:

DROP USER user;

La sentencia borra los registros de privilegios para la cuenta de todas las tablas de concesiones.

Para MySQL entre 4.1.1 y 5.0.1, DROP USER sólo borra cuentas MySQL que no tengan ningún privilegio. Sirve para eliminar cada registro de cuenta de la tabla de usuarios. Para eliminar una cuenta MySQL, se puede usar el procedimiento siguiente, realizando cada paso en el orden mostrado:

Usar SHOW GRANTS para determinar qué privilegios tiene la cuenta.

Usar REVOKE para revocar los privilegios mostrados por SHOW GRANTS. Esto borra los registros para la cuenta de todas las tablas de concesiones excepto la tabla user, y eliminar cualquier privilegio global listado en la tabla de usuario.

Borrar la cuenta usando DROP USER para eliminar el registro de la tabla de usuarios.

Antes de MySQL 4.1.1, DROP USER no está disponible. Primero se deben revocar los privilegios de la cuenta como se ha explicado. Después borrar el registro de la tabla user y restablecer las tablas de concesiones de este modo:

mysql> DELETE FROM mysql.user
    -> WHERE User='user_name' and Host='host_name';
mysql> FLUSH PRIVILEGES;