Cómo listar todos los usuarios en una base de datos MySQL/MariaDB

Cuando se gestiona un servidor MySQL, MariaDB o PerconaDB, es común necesitar una lista completa de los usuarios creados en la base de datos para gestionar permisos, detectar posibles problemas de seguridad o simplemente para llevar un registro de los accesos. MySQL ofrece varias formas de mostrar la información de los usuarios mediante consultas SQL y comandos integrados. A continuación, se explica cómo hacerlo paso a paso.

Iniciar sesión en el servidor MySQL

El primer paso para obtener una lista de usuarios en MySQL es iniciar sesión en el servidor. Para ello, se puede utilizar la línea de comandos:

mysql -u root -p

Una vez ejecutado el comando, se pedirá la contraseña del usuario administrador (root, en este caso). Ingrese la contraseña correspondiente para acceder a la consola MySQL.

Comando para listar usuarios: SHOW USERS

Aunque MySQL no tiene un comando directo llamado SHOW USERS, se puede consultar la tabla mysql.user, donde se almacenan los datos de todos los usuarios del servidor. Para obtener la lista completa, ejecute la siguiente consulta:

SELECT User, Host FROM mysql.user;

Esta consulta mostrará una tabla con los nombres de usuario (User) y los hosts desde los que están autorizados a conectarse (Host).

Mostrar solo nombres de usuario únicos

En algunos casos, puede que solo interese ver una lista de nombres de usuario únicos sin importar los hosts. Esto se puede hacer modificando la consulta anterior:

SELECT DISTINCT User FROM mysql.user;

El comando DISTINCT asegura que los nombres duplicados se eliminen de los resultados, ofreciendo una lista más limpia y concisa.

Información adicional sobre los usuarios

La tabla mysql.user contiene mucha más información además de los nombres de usuario y los hosts. Entre los campos más útiles se encuentran:

  • plugin: Indica el método de autenticación utilizado por el usuario.
  • authentication_string: Almacena las contraseñas cifradas.
  • ssl_cipher: Muestra si el usuario está configurado para utilizar conexiones seguras (SSL).
  • max_questions, max_updates, max_connections: Límites de uso que pueden estar establecidos para cada usuario.

Para obtener todos los detalles, puede ejecutar:

DESCRIBE mysql.user;

Esto proporcionará una lista de todas las columnas de la tabla mysql.user.

Mostrar información sobre el usuario actual

Si desea conocer los detalles del usuario que está actualmente conectado a la base de datos, puede utilizar el comando:

SELECT USER();

Este comando muestra el nombre del usuario y el host desde donde está conectado. Por ejemplo:

root@localhost

Para obtener información más detallada sobre el usuario y su contexto de conexión, utilice:

SELECT CURRENT_USER();

Este comando muestra el usuario tal como ha sido autenticado por el servidor.

Consideraciones de seguridad

Acceder a la tabla mysql.user requiere privilegios de administrador, generalmente asignados al usuario root o a usuarios con permisos específicos de gestión. Además:

  • Evite mostrar información sensible, como contraseñas cifradas, a usuarios no autorizados.
  • Mantenga un registro de los usuarios y sus permisos para garantizar que solo los usuarios necesarios tengan acceso al sistema.
  • Considere desactivar o eliminar usuarios obsoletos para reducir el riesgo de accesos no autorizados.

Conclusión

Listar los usuarios en un servidor MySQL es una tarea fundamental para la administración de bases de datos, especialmente en entornos con múltiples usuarios y permisos personalizados. Utilizando consultas como SELECT User, Host FROM mysql.user, los administradores pueden obtener rápidamente una visión general de todos los accesos configurados. Asegúrese de gestionar los usuarios y sus privilegios de manera proactiva para mantener la seguridad y la eficiencia del sistema.

Suscríbete al boletín SysAdmin

Este es tu recurso para las últimas noticias y consejos sobre administración de sistemas, Linux, Windows, cloud computing, seguridad de la nube, etc. Lo enviamos 2 días a la semana.

¡Apúntate a nuestro newsletter!


– patrocinadores –

Noticias destacadas

– patrocinadores –

¡SUSCRÍBETE AL BOLETÍN
DE LOS SYSADMINS!

Scroll al inicio