Declaración REVOKE de MySQL
La sentencia `REVOKE` en MySQL se utiliza para eliminar privilegios previamente concedidos a una cuenta de usuario. Es una parte esencial de la gestión de la seguridad de la base de datos, ya que permite a los administradores controlar el acceso y los permisos.
Utilización
La sentencia `REVOKE` se emplea cuando necesitas retirar permisos a un usuario o rol en una base de datos. Ayuda a mantener la seguridad garantizando que los usuarios sólo tienen el acceso necesario para sus funciones.
sql
REVOKE privilege_type [(column_list)]
ON [object_type] privilege_level
FROM user_account [, user_account] ...;
En esta sintaxis:
privilege_type
: Especifica el tipo de privilegio a revocar.column_list
: Una lista opcional de columnas para las que se está revocando el privilegio, aplicable cuando se trata de privilegios específicos a nivel de columna.object_type
: Una especificación opcional que indica el tipo de objeto de base de datos, como TABLA o FUNCIÓN, del que se revoca el privilegio.privilege_level
: Define el ámbito del privilegio que se revoca, como una base de datos o una tabla concretas.user_account
: Identifica la cuenta de usuario de la que se está eliminando el privilegio.
Ejemplos
1. Privilegio básico de revocación
sql
REVOKE SELECT ON database_name.table_name FROM 'username'@'host';
Este ejemplo revoca el permiso `SELECT` del usuario especificado para una tabla concreta.
2. Revocar varios privilegios
sql
REVOKE INSERT, DELETE ON database_name.* FROM 'username'@'host';
Esta sentencia elimina los privilegios de `INSERT` y `DELETE` del usuario especificado en todas las tablas de una base de datos determinada.
3. Revocar todos los privilegios
sql
REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'username'@'host';
Este comando revoca todos los privilegios y la capacidad de concederlos de un usuario, eliminando efectivamente todos los derechos de acceso.
Consejos y buenas prácticas
- Revisa periódicamente los privilegios concedidos. Audita periódicamente los privilegios de los usuarios para asegurarte de que se ajustan a las políticas de seguridad vigentes.
- Sé concreto. Especifica sólo los privilegios exactos que deseas revocar para evitar eliminar inadvertidamente permisos necesarios.
- Limita el acceso de los usuarios. Revoca los privilegios innecesarios para minimizar los riesgos de seguridad y garantizar que los usuarios sólo tienen los permisos que necesitan.
- Prueba los cambios. Tras revocar los privilegios, comprueba que el acceso del usuario se ajusta a las expectativas para evitar interrupciones.
- Errores comunes. Asegúrate de que se especifican el usuario y el host correctos para evitar errores.
- Gestión de transacciones. Ten en cuenta que las sentencias `REVOKE` no son transaccionales, lo que significa que los cambios tienen efecto inmediato y no pueden revertirse como parte de una transacción.