Como listar registros do banco de dados com PHP e MySQLi e criar paginação
Tabla de contenido:
- Antes de que empieces
- Mostrar todos los usuarios de MySQL
- Mostrar usuarios que tienen acceso a una base de datos particular
- Conclusión
¿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.
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 mariadbVolver a mostrar el icono Mostrar escritorio en la barra de tareas de Windows 7
Mostrar el icono del escritorio en la barra de tareas de Windows 7, en la ubicación que debería se verá y se comportará de la manera que debería verse y comportarse.
Cómo crear y enumerar ramas git locales y remotas
Al corregir un error o trabajar en una nueva característica, los desarrolladores están creando una nueva rama que luego puede fusionarse en la base del código principal. Esta guía cubre cómo crear y enumerar ramas Git locales y remotas.
Cómo enumerar y eliminar las reglas de firewall de ufw
UFW significa Firewall sin complicaciones y es una interfaz fácil de usar para administrar las reglas de firewall de iptables (netfilter). En este tutorial, cubriremos cómo enumerar y eliminar las reglas de firewall UFW.







