Introducción
La función principal de una base de datos es almacenar información de forma estructurada para permitir un fácil acceso a esa información. Tener muchos usuarios con permiso para acceder y trabajar en su servidor MySQL puede convertirse en un problema de seguridad.
Un breve conjunto de consultas en el cliente MySQL puede proporcionarle información valiosa para ayudar a prevenir posibles problemas. Utilice los comandos descritos en este tutorial para aprender cómo enumerar todas las cuentas de usuario en un servidor MySQL.
Requisitos previos
- Línea de comando/ventana de terminal
- MySQL o MariaDB instalado
- Usuario con sudo o raíz privilegios
Cómo acceder a MySQL como raíz
Acceda al servidor MySQL como root usuario ingresando el siguiente comando en su terminal:
sudo mysql --user=root mysql -p
o:
sudo mysql -u root -p
El -p
La opción es obligatoria solo si tiene una contraseña predefinida para su usuario raíz. Si no se define una contraseña, use el comando sin -p
opción.
El resultado anterior muestra que obtuvimos acceso al cliente MySQL como raíz usuario.
Ahora, puede ejecutar una consulta MySQL y recuperar información del mysql.user base de datos.
Cómo mostrar todos los usuarios de MySQL
El siguiente comando enumera los nombres de usuario que tienen acceso al servidor:
SELECT user FROM mysql.user;
Este comando le indica a MySQL que cree una tabla. El sistema recupera la información del Usuario columna en mysql.user base de datos.
El resultado de este ejemplo muestra una tabla con cuatro filas:
La lista que recibimos tiene un valor limitado. Para recuperar una descripción más detallada de los usuarios de MySQL y sus permisos, podemos expandir los parámetros de búsqueda y agregar columnas adicionales.
Cómo enumerar mysql.user Campos de la base de datos
Antes de expandir la consulta, enumeremos los campos disponibles en mysql.user base de datos. El siguiente comando enumera todas las columnas disponibles:
desc mysql.user;
Las opciones en el Campo columna representan la información que podemos solicitar del mysql.user base de datos.
Es posible combinar varias opciones en un solo comando para obtener información detallada del usuario.
Cómo mostrar información de usuario de MySQL
La siguiente consulta proporciona una tabla con el Usuario , Anfitrión y cadena_de_autenticación columnas:
SELECT User, Host, authentication_string FROM mysql.user;
La consulta agrega dos columnas más a la columna Usuario y proporciona información valiosa, como la contraseña y el nombre de host del usuario.
Cómo enumerar solo usuarios únicos de MySQL
Otra opción útil es eliminar los nombres de usuario de MySQL que aparecen en varias filas. Para mostrar solo nombres de usuario únicos de MySQL, ingrese el siguiente comando:
SELECT DISTINCT User FROM mysql.user;
El resultado elimina las filas de MySQL duplicadas y muestra nombres de usuario específicos solo una vez.
Mostrar usuario actual de MySQL
Usa el user()
o current_user()
función para obtener los detalles del usuario actual de MySQL:
SELECT user();
O:
SELECT current_user();
En ambos casos, el resultado muestra que el usuario actual de MySQL es [email protected] .
Mostrar usuarios registrados de MySQL
En cualquier momento, puede verificar los usuarios que actualmente están conectados al servidor de base de datos MySQL. Esta función proporciona información invaluable al monitorear su servidor MySQL para uso no autorizado.
Ingrese esta consulta para mostrar la lista de usuarios de MySQL conectados actualmente:
SELECT user, host,db, command FROM information_schema.processlist;
El resultado enumera los usuarios que iniciaron sesión, la base de datos y el comando que se está ejecutando.