MySQL o MariaDB, el sistema de gestión de bases de datos relacionales de código abierto más popular del mundo, es una herramienta fundamental para muchos desarrolladores y administradores de sistemas. La correcta gestión de usuarios y permisos es crucial para mantener la seguridad y eficiencia de las bases de datos. Este artículo explora el proceso de creación de nuevos usuarios en MySQL y la asignación de permisos adecuados.
Preparativos iniciales
Antes de comenzar, es necesario tener acceso a una base de datos MySQL. Aunque este proceso es aplicable a cualquier sistema, el artículo asume que se está utilizando un servidor privado virtual con Ubuntu 20.04. Los usuarios que no dispongan de una instalación de MySQL pueden seguir las guías oficiales para su configuración.
Creación de un nuevo usuario
El primer paso para mejorar la seguridad de la base de datos es crear un nuevo usuario, evitando así el uso del usuario root para tareas no administrativas. Para crear un nuevo usuario, se debe acceder al prompt de MySQL utilizando el siguiente comando:
sudo mysql
Una vez en el prompt de MySQL, se puede crear un nuevo usuario con la siguiente sintaxis:
CREATE USER 'nombre_usuario'@'localhost' IDENTIFIED BY 'contraseña';
Es importante seleccionar un nombre de usuario y una contraseña seguros. MySQL ofrece diferentes opciones de autenticación, siendo el plugin predeterminado ‘caching_sha2_password’ recomendado por su alta seguridad.
Otorgamiento de permisos
Tras la creación del usuario, el siguiente paso es asignarle los permisos necesarios. La sintaxis general para otorgar permisos es:
GRANT tipo_de_permiso ON base_de_datos.tabla TO 'nombre_usuario'@'localhost';
Los permisos pueden variar desde accesos muy específicos hasta privilegios globales. Por ejemplo, para otorgar permisos globales de creación, alteración y eliminación de bases de datos y tablas, así como la capacidad de insertar, actualizar y eliminar datos, se utilizaría el siguiente comando:
GRANT CREATE, ALTER, DROP, INSERT, UPDATE, DELETE, SELECT, REFERENCES, RELOAD ON *.* TO 'nombre_usuario'@'localhost' WITH GRANT OPTION;
Gestión de permisos
Es posible revisar los permisos actuales de un usuario con el comando:
SHOW GRANTS FOR 'nombre_usuario'@'localhost';
Si es necesario revocar permisos, se puede utilizar la sintaxis:
REVOKE tipo_de_permiso ON base_de_datos.tabla FROM 'nombre_usuario'@'localhost';
Conclusión
La creación de usuarios y la gestión de permisos en MySQL son habilidades esenciales para cualquier administrador de bases de datos. Estas prácticas no solo mejoran la seguridad, sino que también permiten un control más granular sobre el acceso a los datos. Con el conocimiento adquirido en este artículo, los administradores pueden implementar políticas de seguridad más robustas y eficientes en sus sistemas MySQL.