MySQL obtiene una lista de cuentas de usuario

MySQL obtiene una lista de cuentas de usuario

Como administrador de la base de datos, encontrará instancias en las que necesita conocer a los usuarios en un servidor MySQL. Esto le permitirá saber qué usuarios pueden realizar tareas específicas y administrar sus permisos.

Este tutorial explorará el método de obtener a los usuarios disponibles en un servidor MySQL.

Requisitos

Antes de comenzar con este tutorial, asumimos que tiene:

  1. La última versión de MySQL Server instalada en su sistema.
  2. Acceso a la sesión de shell mysql.

Paso 1 - Inicie sesión en MySQL

Accederá a su shell MySQL para mostrar y administrar a los usuarios en su servidor MySQL.

Sintaxis de comando:

$ mysql -u -pag

Reemplace el nombre de usuario con el usuario objetivo que desea iniciar sesión.

Por ejemplo, como root, ejecuta:

$ mysql -u root -p

Ingrese la contraseña del nombre de usuario. Una vez autenticado con éxito, debe caer en el shell SQL como se muestra:

Aquí, puede comenzar a ejecutar comandos SQL y ver la salida resultante.

Listado de usuarios en MySQL

Desafortunadamente, MySQL no proporciona un comando de usuarios de espectáculos nativos que podemos usar. Esto significa que tenemos que jugar con cómo MySQL almacena información.

Por ejemplo, mysql usa el mysql.tabla de usuario para almacenar información del usuario. Luego podemos usar la información almacenada en esta tabla para recuperar varias información.

MySQL muestra a todos los usuarios

Comencemos por discutir cómo recuperar a todos los usuarios. Ejecute la consulta:

SELECCIONAR
usuario
DE
mysql.usuario;

El comando recuperará la columna de usuario del mysql.tabla de usuario y devolver los resultados como se muestra:

De la salida anterior, podemos ver a varios usuarios como root, mysql.sys, mysql.sesión, etc.

Recuerde que el comando anterior puede requerir que cambie las bases de datos. Si obtienes la "Consulta 1: Table 'mysql.Error del usuario 'no existe ", ejecute el comando a continuación para cambiar las bases de datos.

> Use mysql

Una vez que obtenga la lista de usuarios en el servidor, puede recopilar información sobre el usuario utilizando comandos como Desc.

Mostrar a los usuarios con una sesión activa

También podemos obtener una lista de usuarios con sesiones activas utilizando la base de datos Information_schema. Esta base de datos almacena información sobre el servidor y las sesiones actuales.

Ejecutar el comando:

El comando anterior obtendrá el nombre de usuario, el host y la base de datos desde la tabla de la lista de procesos. Esto muestra el nombre de usuario actual, el host desde el que se está conectando el cliente y la base de datos a la que ha conectado.

Una salida de ejemplo es como se muestra:

De la salida anterior, podemos ver que actualmente hay tres usuarios conectados. Recuerde que el mismo nombre de usuario pero un anfitrión diferente se trata como un nombre de usuario diferente.

Mostrar usuario actual

A veces, es posible que deba recopilar información rápida sobre el usuario actual. Afortunadamente, MySQL tiene una función de usuario () que devuelve al usuario iniciado actualmente.

Un ejemplo es como se muestra:

SELECCIONAR
usuario();

El comando debe devolver la información del usuario actual como:

Obtener usos con acceso a una base de datos específica

Supongamos que desea determinar el nombre de usuario con acceso a un DB objetivo? Puede usar la tabla DB y filtrar para ese nombre de usuario en particular.

Tome la ilustración del código a continuación:

SELECCIONAR
*
DE
mysql.db
DÓNDE
Db = 'sys' \ g;

El comando anterior devolverá al usuario con cualquier acceso a la base de datos SYS. Siéntase libre de reemplazar el SYS con el nombre de la base de datos que desea evaluar.

El comando devolverá una salida como se muestra:

************************** 1. fila ***************************
Anfitrión: localhost
DB: SYS
Usuario: MySQL.sys
Select_priv: n
Insert_priv: n
Update_priv: n
Delete_priv: n
Create_priv: n
Drop_Priv: N
Grant_priv: N
Referencias_priv: n
Index_priv: n
Alter_priv: n
Create_tmp_table_priv: n
Lock_tables_priv: n
Create_view_priv: n
Show_view_priv: n
Create_routine_priv: n
Alter_routine_priv: n
EXECUTE_PRIV: N
Event_priv: n
Trigger_priv: y
1 fila en el set (0.00 seg)

De la salida anterior, podemos ver que el mysql.El usuario de SYS tiene un privilegio de activación en la base de datos.

Conclusión

Como se ilustra en este tutorial, podemos usar varias tablas y bases de datos MySQL para obtener información sobre los usuarios. Esta potente característica le permite crear procedimientos y otros tipos definidos por el usuario para recopilar información del usuario.