Mi Blog

No te olvides seguirme en Facebook.

Tan solo tienes que hacer click en Me Gusta

 

 

x

⋆ Cómo listar todos los usuarios de MySQL y MariaDB

⋆ Cómo listar todos los usuarios de MySQL y MariaDB

(Tiempo estimado: 4 - 8 minutos)

Listar los usuarios de MySQL/MariaDB y sus bases de datos es necesario cuando queremos realizar alguna limpieza en el SGBD (Sistema Gestor de Bases de Datos), comprobar quienes tienen acceso a las bases de datos, realizar alguna auditoria de seguridad, verificar la correcta configuración de accesos etc...

Seguid leyendo y os enseñaré a listar los usuarios de MySQL/MariaDB y las bases de datos a las que tienen acceso...

 

 

¿QUÉ SON LOS USUARIOS EN MYSQL/MARIADB?

Los usuarios de MySQL/MariaDB se utilizan para conectar a un servidor de base de datos (SGBD). MySQL y MariaDB disponen de su propio sistema de permisos, y cada vez que necesitemos acceder a una base de datos, deberemos iniciar sesión con un nombre de usuario y una contraseña correcta. Cada vez que creemos una nueva base de datos MySQL/MariaDB, deberemos especificar un nombre de usuario y contraseña para acceder.

 

 

Gestionar los usuarios de MySQL/MariaDB es esencial para garantizar la seguridad del SGBD

 

 

1.- ELEMENTOS NECESARIOS PARA ESTE TUTORIAL

  • Un PC con cualquier Sistema Operativo
  • Servidor MySQL/MariaDB y acceso de administrador al SGBD de MySQL/MariaDB

 

 

2.- CONECTAR AL SGBD (SISTEMA GESTOR DE BASES DE DATOS)

El primer paso es conectar al servidor de bases de datos o SGBD. Para ello, desde consola y desde cualquier Sistema Operativo e independientemente si el SGBD es MySQL o MariaDB, ejecutaremos un comando -como el siguiente- respetando la sintaxis y los espacios. La sintaxis es la siguiente:

raul@debian:~$ mysql -h[equipo] -u [usuario] -p

 

 

Por ejemplo, para conectar al servidor local ubicado en la misma máquina, con el usuario administrador root, introduciremos lo siguiente:

raul@debian:~$ mysql -u root -p
Enter password: ********
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 318
Server version: 10.4.14-MariaDB mariadb.org binary distribution

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]>

 

 

 

 

3.- LISTAR TODO LOS USUARIOS

La tabla user es donde el SGBD guarda toda la información relativa a los usuarios junto a sus privilegios globales.

Si deseamos listar todos los usuarios de un servidor MySQL/MariaDB, simplemente debemos seleccionar dicha tabla y la columna "User". La tabla user pertenece a la tabla mysql. En el siguiente ejemplo, mostramos el nombre de todos los usuarios almacenados en la tabla user:

MariaDB [(none)]> SELECT User FROM mysql.user;
+----------+
| User |
+----------+
| newuser |
| remote |
| telegraf |
| root |
| root |
| newuser |
| pma |
| remote |
| root |
| sysadmin |
| telegraf |
+----------+
11 rows in set (0.010 sec)

 

 

4.- LISTAR TODAS LAS BASES DE DATOS

Para listar todas las bases de datos del SGBD, es tan sencillo como ejecutar el comando siguiente:

MariaDB [(none)]> SHOW DATABASES;
+--------------------+
| Database |
+--------------------+
| gestco |
| information_schema |
| mysql |
| performance_schema |
| phpmyadmin |
| production |
| production_ba |
| production_ma |
| test |
| testing |
| vivelamagia |
+--------------------+
11 rows in set (0.008 sec)

 

 

5.- LISTAR TODOS LOS USUARIOS Y SUS BASES DE DATOS

Ahora, si queremos saber las bases de datos a las que tiene acceso cada uno de los usuarios, es tan sencillo como enlazar con un INNER JOIN la tablas mysql.user y mysql.db a través del campo "User" de ambas tablas. Para ello, ejecutaremos el siguiente comando:

MariaDB [(none)]> SELECT u.User,Db FROM mysql.user u INNER JOIN mysql.db d ON u.User=d.User;
+----------+---------------+
| User | Db |
+----------+---------------+
| newuser | gestco |
| newuser | vivelamagia |
| remote | production |
| telegraf | production_ba |
| telegraf | production_ma |
| newuser | gestco |
| newuser | vivelamagia |
| pma | phpmyadmin |
| remote | production |
| telegraf | production_ba |
| telegraf | production_ma |
+----------+---------------+
11 rows in set (0.001 sec)

 

 

6.- LISTAR TODOS LOS USUARIOS, SUS BASES DE DATOS Y HOST

MySQL/MariaDB, permiten acceder a un usuario desde un host remoto, desde varios o desde cualquier host remoto. Si queremos saber exactamente desde que hosts puede conectar cada uno de los usuarios, deberemos obtener también el campo "Host". Para ello, modificaremos el comando del paso 5 y ejecutaremos el siguiente:

MariaDB [(none)]> SELECT u.User,Db,d.Host FROM mysql.user u,mysql.db d WHERE u.User=d.User;
+----------+---------------+-----------+
| User | Db | Host |
+----------+---------------+-----------+
| newuser | gestco | % |
| newuser | vivelamagia | % |
| remote | production | % |
| telegraf | production_ba | % |
| telegraf | production_ma | % |
| newuser | gestco | % |
| newuser | vivelamagia | % |
| pma | phpmyadmin | localhost |
| remote | production | % |
| telegraf | production_ba | % |
| telegraf | production_ma | % |
+----------+---------------+-----------+
11 rows in set (0.001 sec)

 

 

% significa que el usuario puede acceder desde cualquier equipo remoto.

  

 

ENJOY!


Raúl Prieto Fernández

Sitio Web: raulprietofernandez.net

Si quieres ir rápido, ve solo. Si quieres llegar lejos, ve acompañado.

Escribir un comentario

Código de seguridad
Refescar