Un servidor de base de datos MySQL es frecuentemente la primera opción para desarrolladores y cualquier persona interesada en probar un lenguaje de consulta estructurado. MySQL incluye numerosas características que lo hacen confiable, seguro y eficiente.
Sin embargo, hay maneras de mejorar aún más la seguridad del servidor MySQL. Una de ellas es crear usuarios de base de datos con acceso restringido.
Este tutorial explicará por qué deberías crear cuentas de usuario separadas en MySQL y cómo utilizar el comando MySQL SHOW USERS en tu VPS de Linux.
Por qué Crear Usuarios en el Servidor MySQL
Cómo Mostrar Usuarios en la Base de Datos MySQL en Linux
1. Inicia sesión como Usuario Root de MySQL
2. Utiliza la Consulta MySQL SHOW USERS
3. Ver más Información de Usuario de MySQL (Opcional)
FAQ sobre Mostrar Usuarios en MySQL
¿Cómo Puedo Ver Todos los Usuarios y Contraseñas de MySQL?
¿Cómo Muestro Usuarios en MySQL MariaDB?
¿Dónde se Almacenan los Usuarios en MySQL?
Por qué Crear Usuarios en el Servidor MySQL
Cuando los usuarios o administradores de bases de datos instalan MySQL, el primer usuario que se crea es el usuario root, es decir, el administrador de MySQL. El usuario root tendrá permisos para hacer todo en la base de datos MySQL.
Aunque tener todos los permisos puede parecer beneficioso, hacerlo tiene sus propias vulnerabilidades de seguridad, y compartir el usuario root entre varias personas es peligroso. Los hackers a menudo intentan iniciar sesión como el usuario root y robar la información alojada o incluso destruir todo el servidor MySQL junto con sus datos.
Por lo tanto, los administradores del sistema crean usuarios con permisos específicos en algunas bases de datos. En otras palabras, si las credenciales de una cuenta se ven comprometidas, el impacto será mínimo y manejable.
Cómo Mostrar Usuarios en la Base de Datos MySQL en Linux
A diferencia de los comandos SHOW DATABASES o SHOW TABLES que muestran todas las bases de datos o tablas de inmediato, el comando SHOW USERS no existe en MySQL.
Aunque no hay tal comando, los usuarios pueden usar una consulta MySQL y obtener una lista completa de usuarios en un servidor de base de datos MySQL específico.
Sigue los pasos a continuación para obtener más información.
1. Inicia sesión como Usuario Root de MySQL
Comienza iniciando sesión en el VPS a través de SSH como usuario root. Una vez hecho esto, ingresa a la línea de comandos de MySQL con este comando:
```bash
sudo mysql -u root -p
```
Luego, ingresa tu contraseña de root de MySQL.
¡Importante! Ten en cuenta que las contraseñas de root del sistema y de MySQL son distintas y pueden ser diferentes.
Una vez que estás en la consola de MySQL como usuario root, podrás ejecutar consultas para mostrar otros usuarios de MySQL.
2. Utiliza la Consulta MySQL SHOW USERS
Utiliza la siguiente consulta para mostrar los usuarios de MySQL creados en el servidor de la base de datos:
```sql
SELECT user FROM mysql.user;
```
Como resultado, verás la lista de todos los usuarios que se han creado en MySQL.
Toma en cuenta que puede haber usuarios duplicados. Esto se debe a que MySQL filtra el acceso a un servidor según la dirección IP de la que proviene.
También puedes agregar una columna de host para ver aún más información utilizando el siguiente comando:
```sql
SELECT user, host FROM mysql.user;
```
Con esto, podrás ver los usuarios de MySQL y a qué host o dirección IP tienen permiso de acceso. En nuestro caso, todos los usuarios son de una base de datos local:
MySQL query showcasing all users along with hosts.
3. Ver más Información de Usuario de MySQL (Opcional)
Si necesitas más información sobre los usuarios de MySQL, la consulta se puede ampliar con la ayuda de consultas MySQL.
Por ejemplo, el siguiente comando imprimirá toda la información posible de la tabla de usuarios:
```sql
SELECT * FROM mysql.user;
```
La consulta de MySQL muestra toda la información posible de una tabla de la base de datos MySQL
Sin embargo, esa salida puede parecer demasiado desordenada para entenderla. Por lo tanto, recomendamos estrechar la búsqueda utilizando consultas más específicas.
Aquí tienes algunos casos de uso más populares:
Vista previa de Columnas de Tabla
La siguiente consulta mostrará una vista previa de las columnas de la tabla de usuarios. Es especialmente útil si los usuarios desean verificar información sobre una tabla específica.
```sql
DESC mysql.user;
```
Consulta de MySQL para obtener una vista previa de las columnas de la tabla de usuarios.
Mostrar Solo Nombres de Usuario Únicos
Para omitir nombres de usuario repetidos, se puede utilizar la siguiente consulta:
```sql
SELECT DISTINCT user FROM mysql.user;
```
Consulta de MySQL para mostrar solo nombres de usuario únicos en una base de datos MySQL dada.
Estado de Expiración de Contraseña y Bloqueo de Cuenta
Para verificar el estado de expiración de la contraseña y el estado de bloqueo de la cuenta, utiliza esta consulta:
```sql
SELECT user, account_locked, password_expired FROM mysql.user;
```
Consulta de MySQL para mostrar el estado de expiración de la contraseña y el estado de bloqueo de la cuenta.
Mostrar Usuarios Actuales y Usuarios Actuales Conectados
El usuario actual se puede mostrar con la siguiente consulta:
```sql
SELECT current_user();
```
Consulta de MySQL para mostrar el usuario actual.
Si necesitas más información, puedes modificar la consulta para mostrar los usuarios actualmente conectados con sus estados. Este comando es beneficioso para encontrar usuarios inactivos que consumen demasiados recursos.
```sql
SELECT user, host, command FROM information_schema.processlist;
```
Consulta de MySQL que muestra los usuarios actualmente conectados junto con sus estados.
Conclusión
La administración de un servidor de base de datos puede ser un trabajo desafiante. Por lo tanto, los administradores de bases de datos deben tener cuidado al crear y administrar permisos de usuario.
El comando MySQL SHOW USERS permite a los administradores ver los usuarios de MySQL junto con otra información importante.
Para resumir, hemos cubierto lo básico de cómo mostrar los usuarios de MySQL vinculados a una base de datos y hemos aprendido cómo:
- Enumerar todos los usuarios creados en una base de datos MySQL dada.
- Obtener una vista previa de las columnas de la tabla de la base de datos MySQL.
- Mostrar solo nombres de usuario únicos en una tabla.
- Verificar el estado de expiración de contraseñas y el estado de bloqueo de cuentas.
- Mostrar usuarios actuales y usuarios actualmente conectados en una base de datos MySQL.
Esperamos que encuentres útil este tutorial. Si tienes alguna pregunta adicional o comentarios, háznoslo saber en la sección de comentarios a continuación.