Introducción
MySQL es un sistema de gestión de bases de datos relacional (RDBMS) de código abierto, respaldado por Oracle y basado en el lenguaje de consulta estructurado (SQL). Es considerada a menudo como la más popular por el uso con las aplicaciones web y la publicación en línea.
Este artículo te dará una breve descripción general de cómo administrar usuarios y permisos matizados en tablas o bases de datos de MySQL. Adicionalmente, te indicamos que los valores en negrita dentro de los ejemplos serán los que deberás adaptar a tus requerimientos.
También debes tener acceso al monitor de MySQL con un usuario que tenga otorgado los permisos necesarios. En este ejemplo, utilizaremos el usuario root para acceder:
# mysql -u root -p
Aunque es posible que tengas el acceso del usuario root deshabilitado y deberás utilizar el usuario correspondiente, puedes revisar el siguiente artículo para conocer Cómo recuperar la contraseña de root en MySQL.
A continuación tienes disponible el índice para una administración básica de usuarios y permisos en MySQL:
Índice
- Creación de usuario
- Otorgar permisos
- Revocación de permisos
- Eliminación de usuarios
- Consultar usuarios
- Consultar permisos de usuarios
- Cambiar contraseña de un usuario
- Documentación
Creación de usuario
Para crear un usuario local, puedes utilizar la siguiente sentencia:
mysql> CREATE USER 'usuario'@'localhost' IDENTIFIED BY 'contraseña';
Nota:
Al añadir usuarios en MySQL, debes especificar el host del usuario. Por ejemplo, en artículo se utiliza localhost para indicar que únicamente tiene acceso desde el propio servidor el usuario creado. Para un acceso externo, deberás indicar la dirección IP externa, red o utilizar el símbolo % para un acceso desde cualquier ubicación.
Por ejemplo, para la creación de un usuario externo desde cualquier ubicación deberemos indicar:
mysql> CREATE USER 'usuario'@'%' IDENTIFIED BY 'contraseña';
También puedes crear el usuario desde fuera del monitor del MySQL con la opción de ejecución:
# mysql -u root -p -e "CREATE USER 'usuario'@'localhost' IDENTIFIED BY 'contraseña'"
Para más detalles sobre cómo crear usuarios en MySQL haz clic aquí.
Otorgar permisos
Primero, listaremos con una breve descripción los tipos de permisos más comunes en MySQL:
- ALL PRIVILEGES: Todos los privilegios.
- CREATE: Permite crear nuevas tablas o bases de datos.
- DROP: Permite eliminar tablas o bases de datos.
- DELETE: Permite eliminar filas de las tablas.
- INSERT: Permite insertar filas en las tablas.
- SELECT: Les permite consultar información de una base de datos o tabla.
- UPDATE: Permite actualizar las filas de las tablas.
- GRANT OPTION: Permite otorgar o eliminar privilegios a otros usuarios.
La opción GRANT es con la que podrás otorgar permisos a un usuario y la sintaxis es la siguiente:
GRANT [Tipo de permiso] ON [Nombre de base de datos].[Nombre de tabla] TO [Usuario]
Por ejemplo, para asignar todos los privilegios en todas las bases de datos y tablas al usuario local creado anteriormente:
GRANT ALL PRIVILEGES ON *.* TO 'usuario'@'localhost';
Por lo tanto, para exponer otro ejemplo o necesitar permisos de recuperación de información de una tabla en una base de datos especifica para un usuario sería:
GRANT SELECT ON base_de_datos.tabla_especifica TO 'usuario'@'localhost';
Para más detalles sobre cómo otorgar permisos en MySQL haz clic aquí.
Eliminación de usuarios
Para la eliminación de un usuario deberás utilizar la opción DROP.
Por ejemplo, para eliminar el usuario local anteriormente creado la sintaxis es la siguiente:
mysql> DROP USER 'usuario'@'localhost';
Para más detalles sobre la eliminación de usuarios en MySQL haz clic aquí.
Revocación de permisos
La opción REVOKE te permitirá revocar privilegios al un usuario. La sintaxis sería:
mysql> REVOKE ALL PRIVILEGES ON *.* FROM 'usuario'@'localhost';
Para más detalles sobre cómo revocar permisos en MySQL haz clic aquí.
Consultar usuarios
Los usuarios creados en MySQL se guardarán dentro de la base de datos "mysql" dentro de la tabla "user". Puedes consultarla para mostrar los usuarios:
mysql> SELECT User, Host FROM mysql.user;
Consultar permisos de usuarios
Con la opción SHOW GRANTS podrás revisar los permisos de un usuario. La sintaxis es la siguiente:
mysql> SHOW GRANTS FOR 'usuario'@'localhost';
Para conocer más detalles sobre cómo consultar permisos en MySQL haz clic aquí.
Cambiar contraseña de un usuario
Con la opción ALTER USER podrás revisar los permisos de un usuario. La sintaxis es la siguiente:
# mysql -u root -p -e "ALTER USER 'usuario'@'localhost' IDENTIFIED BY 'nueva_contraseña'"
Para conocer más detalles sobre cómo consultar permisos en MySQL haz clic aquí.
Documentación
Para más información, haz clic aquí para ir a la documentación oficial de MySQL.
Esperamos haberte ayudado con este tutorial 🙂. Recuerda, si tienes consultas sobre esta u otra cuestión relacionada con tus servidores en Clouding, no dudes en escribir a soporte@clouding.io ¡Estamos a tu lado para lo que necesites!