Cómo crear un usuario MySQL y otorgar privilegios: una guía para principiantes

¿Quieres entender los conceptos básicos de las operaciones de MySQL? Sigue leyendo, ya que este artículo te mostrará cómo crear un usuario en MySQL. También aprenderás sobre varios comandos para otorgar privilegios, revocarlos y eliminar usuarios existentes.

Antes de continuar con la siguiente sección del tutorial, asegúrate de haber instalado MySQL. Si no lo has hecho, tenemos excelentes tutoriales sobre cómo instalarlo en Ubuntu y CentOS.

Consejo profesional

Utilizaremos la línea de comando para acceder a nuestro VPS de Linux como root. Puedes usar PuTTY (Windows) o tu terminal (macOS, Linux) e iniciar sesión con la información de inicio de sesión root SSH proporcionada por tu proveedor de alojamiento.

Crea una cuenta de usuario MySQL y otorga todos los privilegios

Justo cuando empieces a usar MySQL, recibirás un nombre de usuario y una contraseña. Estas credenciales iniciales te otorgarán acceso root o control total de todas tus bases de datos y tablas.

Sin embargo, hay ocasiones en las que deberás otorgar acceso a la base de datos a otra persona sin otorgarle el control total.

Por ejemplo, si tienes que contratar desarrolladores para hacer mantenimiento a tus bases de datos, pero no deseas darles la capacidad de eliminar o modificar cualquier información confidencial.

En ese caso, debes darles las credenciales de un usuario no root. De esta manera, puedes realizar un seguimiento de lo que los desarrolladores pueden y no pueden hacer con tus datos.

En esta parte, explicaremos cómo crear una cuenta de usuario en MySQL y otorgar todos los privilegios de tu base de datos. En un sentido práctico, no es aconsejable dar el control total a un usuario no root. Sin embargo, sigue siendo un buen punto de entrada para conocer los privilegios del usuario.

Para crear una nueva cuenta de usuario en MySQL, sigue estos pasos:

  1. Accede a la línea de comando e ingresa al servidor MySQL:
    mysql
  2. El script devolverá este resultado, que confirma que estás accediendo a un servidor MySQL.
    mysql>
  3. Luego, ejecuta el siguiente comando:
    CREATE USER 'nuevo_usuario'@'localhost' IDENTIFIED BY 'contraseña';
  4. nuevo_usuario es el nombre que le hemos dado a nuestra nueva cuenta de usuario y la sección IDENTIFIED BY «contraseña» establece un código de acceso para este usuario. Puedes reemplazar estos valores con los tuyos, dentro de las comillas.
  5. Para otorgar todos los privilegios de la base de datos para un usuario recién creado, ejecuta el siguiente comando:
    GRANT ALL PRIVILEGES ON * . * TO 'nuevo_usuario'@'localhost';
  6. Para que los cambios tengan efecto inmediatamente, elimina estos privilegios escribiendo el comando:
    FLUSH PRIVILEGES;

Una vez hecho esto, tu nueva cuenta de usuario tendrá el mismo acceso a la base de datos que el usuario root.

Conceder privilegios por separado para un usuario de MySQL

Recuerda especificar el nombre de la base de datos y el nombre de la tabla y separarlos con un . (punto) y sin espacios. Esto le dará al usuario root un control detallado sobre ciertos datos.

Estos son los comandos más utilizados en MySQL:

  • CREATE: permite a los usuarios crear una base de datos o una tabla
  • SELECT: permite a los usuarios recuperar datos
  • INSERT: permite a los usuarios agregar nuevas entradas en las tablas
  • UPDATE: permite a los usuarios modificar entradas existentes en tablas
  • DELETE: permite a los usuarios borrar entradas de la tabla
  • DROP: permite a los usuarios eliminar tablas de bases de datos completas

El uso del tipo de permiso ALL PRIVILEGES (que hemos usado en el ejemplo anterior) permitirá todos los permisos listados antes.

Para usar cualquiera de estas opciones, simplemente reemplaza TIPO_DE_PERMISO con la palabra clave apropiada. Para aplicar varios privilegios, sepáralos con una coma. Por ejemplo, puedes asignar CREATE y SELECT a tu cuenta de usuario MySQL no root con este comando:

GRANT CREATE, SELECT ON * . * TO 'nombre_usuario'@'localhost';

A veces, puedes encontrarte con una situación en la que necesitas revocar los privilegios otorgados a un usuario. Puedes hacerlo ingresando:

REVOKE PERMISSION_TYPE ON database_name.table_name FROM ‘nombre_usuario’@‘localhost’;

Por ejemplo, para retirar todos los privilegios para un usuario no root, debes usar:

REVOKE ALL PRIVILEGES ON * . * FROM 'nombre_usuario'@'localhost';

Finalmente, puedes eliminar por completo una cuenta de usuario existente mediante el siguiente comando:

DROP USER ‘nombre_usuario’@‘localhost’;

Consejo profesional

Recuerda que debes tener acceso de root para ejecutar cualquiera de estos comandos. Asegúrate de ejecutar el comando FLUSH PRIVILEGES; después de hacer tus cambios.

Mostrar los privilegios de cuenta de un usuario de MySQL

Para encontrar qué privilegios ya se han otorgado a un usuario de MySQL, puedes usar el comando SHOW GRANTS:

SHOW GRANTS FOR 'nombre_usuario'@'localhost';

El resultado será similar a esto:

+---------------------------------------------------------------------------+
| Grants for user_name@localhost                                             |
+---------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'user_name'@'localhost'                              |
| GRANT ALL PRIVILEGES ON 'database_name'.* TO 'user_name'@'localhost'.      |
| REVOKE ALL PRIVILEGES ON * . * FROM 'user_name'@'localhost';
+---------------------------------------------------------------------------+
3 rows in set (0.00 sec)

¿Qué es una base de datos MySQL?

Para entender MySQL, necesitarás saber qué es una base de datos. Es un almacenamiento virtual donde puedes guardar los datos necesarios para crear sitios web y aplicaciones web.

La base de datos MySQL puede almacenar detalles de la cuenta de usuario, como nombres de usuario, contraseñas, direcciones de correo electrónico y cualquier tipo de información que desees conservar para su uso posterior.

Sin embargo, los datos almacenados deben estar en algún tipo de orden. Por eso tenemos sistemas de gestión de bases de datos. Estas herramientas se utilizan para comunicarse con la base de datos y permiten a los desarrolladores estructurar, almacenar, volcar y modificar los datos.

MySQL es uno de los nombres más populares cuando se trata de sistemas de gestión de bases de datos. Esto se debe a su facilidad de uso y apoyo comunitario. Las plataformas como Facebook y Twitter incluso usan MySQL hasta cierto punto.

Conclusión

Una base de datos es una parte esencial de cada sitio web y aplicación web porque almacena todos los datos del usuario. Para administrarla y comunicarte con ella de manera más eficiente, necesitarás un sistema de administración de base de datos. Es por eso que recomendamos usar la opción más popular y recomendada: MySQL, debido a su confiabilidad y facilidad de uso.

En este tutorial, has aprendido algunos comandos básicos para realizar varias tareas en MySQL, que incluyen:

  • Cómo crear un usuario MySQL y otorgarle todos los privilegios.
  • Otorgar privilegios específicos a un usuario, revocarlos y eliminar un usuario de MySQL por completo.
  • Cómo ver qué privilegios ya tiene un usuario de MySQL.

Buena suerte, y siéntete libre de dejar un comentario a continuación si tienes alguna pregunta.

Author
El autor

Deyimar A.

Deyi es una entusiasta del marketing digital, con experiencia en diseño de páginas web, creación de contenido, copywrite y SEO. Forma parte del equipo de SEO & Localization de Hostinger. En su tiempo libre, le gusta desarrollar proyectos, leer un libro o ver una buena película.