Androide

Cómo mostrar / enumerar usuarios en mysql

Como listar registros do banco de dados com PHP e MySQLi e criar paginação

Como listar registros do banco de dados com PHP e MySQLi e criar paginação

Tabla de contenido:

Anonim

¿Alguna vez ha necesitado obtener una lista de todos los usuarios en su servidor MySQL? Hay comandos para mostrar bases de datos y tablas, pero no hay un comando show users MySQL.

Este tutorial explica cómo enumerar todas las cuentas de usuario en un servidor de base de datos MySQL a través de la línea de comando. También le mostraremos cómo averiguar qué usuarios tienen acceso a una base de datos determinada.

Antes de que empieces

Asumimos que ya tiene instalado el servidor MySQL o MariaDB en su sistema.

Todos los comandos se ejecutan dentro del shell MySQL como usuario root. Para acceder al shell de MySQL, escriba el siguiente comando e ingrese su contraseña de usuario root de MySQL cuando se le solicite:

mysql -u root -p Si olvidó su contraseña de root de MySQL, puede restablecerla siguiendo estas instrucciones.

Mostrar todos los usuarios de MySQL

MySQL almacena información sobre los usuarios en una tabla denominada user en la base de datos mysql .

Para obtener una lista de todas las cuentas de usuario de MySQL, use la instrucción SELECT para recuperar todas las filas de la tabla mysql.users :

SELECT User, Host FROM mysql.user;

El resultado debería ser similar al siguiente:

+------------------+-----------+ | user | host | +------------------+-----------+ | root | localhost | | luke | % | | yoda | % | | jabba | 10.10.0.6 | | jabba | 10.10.0.9 | | chewbacca | localhost | | leia | localhost | | han | localhost | +------------------+-----------+ 8 rows in set (0.00 sec)

El comando anterior muestra solo dos columnas de la tabla mysql.user ( User y Host ). Esta tabla contiene más de 40 columnas como Password , Select_priv , Update_priv , etc.

Una cuenta de usuario en MySQL consta de dos partes: un nombre de usuario y un nombre de host.

Utilice el desc mysql.user; declaración para mostrar información sobre las columnas de la tabla. Una vez que conoce el nombre de la columna, puede ejecutar una consulta con los datos seleccionados.

Por ejemplo, para obtener una lista de todas las cuentas de usuarios de MySQL, incluida la información sobre la contraseña y si está activa o caducada, debe utilizar la siguiente consulta:

SELECT User, Host, Password, password_expired FROM mysql.user;

+----------------+-----------+-------------------------------------------+------------------+ | User | Host | Password | password_expired | +----------------+-----------+-------------------------------------------+------------------+ | root | localhost | | N | | luke | % | *ADC3B5B27617732CD6320A2DA976258E149A7EC8 | N | | yoda | % | *9550E004046348198A143A115550E1262209FB6F | N | | jabba | 10.10.0.6 | *F91C86B486B945C083B61A05FF6E197560D187EC | Y | | jabba | 10.10.0.9 | | Y | | chewbacca | localhost | *17F2B1E48029294841AD66772BEBB7E6E6A005AF | N | | leia | localhost | *74409C8DB55AC1A6829D801915981C46EDBFC64A | N | | han | localhost | *7B3022FCAEC3534CE67C68322D8AF0C240D95745 | N | +----------------+-----------+-------------------------------------------+------------------+ 8 rows in set (0.00 sec)

Mostrar usuarios que tienen acceso a una base de datos particular

La información sobre los privilegios a nivel de base de datos se almacena en la tabla mysql.db .

Puede consultar la tabla para averiguar qué usuarios tienen acceso a una base de datos determinada y el nivel de los privilegios.

Por ejemplo, para obtener una lista de todos los usuarios que tienen algún nivel de acceso a la base de datos llamada db_name , usaría la siguiente consulta:

SELECT * FROM mysql.db WHERE Db = 'db_name'\G;

*************************** 1. row *************************** Host: localhost Db: db_name User: db_user Select_priv: Y Insert_priv: Y Update_priv: Y Delete_priv: Y Create_priv: Y Drop_priv: Y Grant_priv: N References_priv: Y Index_priv: Y Alter_priv: Y Create_tmp_table_priv: Y Lock_tables_priv: Y Create_view_priv: Y Show_view_priv: Y Create_routine_priv: Y Alter_routine_priv: Y Execute_priv: Y Event_priv: Y Trigger_priv: Y 1 row in set (0.00 sec)

Para obtener información solo sobre las cuentas de usuario que tienen acceso a una base de datos determinada, sin mostrar los privilegios, utilice:

SELECT db, host, user FROM mysql.db WHERE db = 'db_name'

+---------+-----------+---------+ | db | host | user | +---------+-----------+---------+ | db_name | localhost | db_user | +---------+-----------+---------+

La siguiente consulta le mostrará información sobre todas las bases de datos y usuarios asociados:

SELECT db, host, user FROM mysql.db WHERE db = 'db_name'

+------------------+-----------+-----------+ | db | host | user | +------------------+-----------+-----------+ | db_name | localhost | db_user | | ghost_production | localhost | chewbacca | | blog_db | localhost | leia | | linuxize | localhost | han | +------------------+-----------+-----------+

Conclusión

En este tutorial, hemos mostrado cómo obtener una lista de todos los usuarios de MySQL y descubrir qué usuarios tienen acceso a una base de datos en particular.

Siéntase libre de dejar un comentario si tiene alguna pregunta.

mysql mariadb