安卓系统

如何在mysql中显示/列出用户

如何連線MYSQL資料庫設定與解決亂碼

如何連線MYSQL資料庫設定與解決亂碼

目录:

Anonim

您是否曾经需要获取MySQL服务器中所有用户的列表? 有显示数据库和表的命令,但是没有MySQL show users 命令。

本教程说明了如何通过命令行列出MySQL数据库服务器中的所有用户帐户。 我们还将向您展示如何找出哪些用户可以访问给定的数据库。

在你开始之前

我们假设您已经在系统上安装了MySQL或MariaDB服务器。

所有命令均以root用户身份在MySQL Shell中执行。 要访问MySQL Shell,请键入以下命令,并在出现提示时输入您的MySQL root用户密码:

mysql -u root -p 如果您忘记了MySQL的root密码,则可以按照以下说明进行重置。

显示所有MySQL用户

MySQL将有关用户的信息存储在 mysql 数据库的名为 user 的表中。

要获取所有MySQL用户帐户的列表,请使用 SELECT 语句从 mysql.users 表中检索所有行:

SELECT User, Host FROM mysql.user;

输出应类似于以下内容:

+------------------+-----------+ | 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)

上面的命令仅显示 mysql.user 表中的两列( User Host ),该表包含40多个列,例如 Password Select_priv Update_priv 等。

MySQL中的用户帐户由两部分组成:用户名和主机名。

使用 desc mysql.user; 语句以显示有关表的列的信息。 知道列名后,就可以对所选数据运行查询。

例如,要获取所有MySQL用户帐户的列表,包括有关密码以及该密码是活动密码还是过期密码的信息,请使用以下查询:

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)

显示有权访问特定数据库的用户

有关数据库级特权的信息存储在 mysql.db 表中。

您可以查询该表以找出哪些用户有权访问给定的数据库以及特权级别。

例如,要获得对名为 db_name 的数据库具有某种级别访问权限的所有用户的列表,可以使用以下查询:

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)

要仅获取有关可以访问给定数据库的用户帐户的信息,而不显示特权,请使用:

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

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

以下查询将向您显示有关所有数据库和关联用户的信息:

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 | +------------------+-----------+-----------+

结论

在本教程中,我们展示了如何获取所有MySQL用户的列表,以及找出哪些用户可以访问特定数据库。

如有任何疑问,请随时发表评论。

MySQL数据库