Mysql 简明教程

MySQL - Show Users

您可能已经知道,MySQL 是一个多用户数据库,允许多个用户同时对其进行处理。但是您是否曾经想过这些用户是谁?

MySQL 为每个用户提供一个帐户,该帐户通过用户名和密码进行身份验证。而这些帐户的详细信息存储在数据库的“user”表中。此表包含一些详细信息,例如用户名、此用户连接到的主机,以及所述用户拥有的其他权限等。

The MySQL SHOW Users

MySQL 不提供任何直接命令来显示(列出)所有用户。但是,这些用户帐户的详细信息存储在数据库中的“user”表中。因此,我们可以使用 SELECT 语句列出此表的內容。

Syntax

以下是显示 MySQL 数据库中用户的语法 −

SELECT * FROM mysql.user;

Example

要查看此“user”表的结构,请将以下查询与 DESC 命令一起使用 −

DESC mysql.user;

现在,在此示例中,我们正在列出系统本地 MySQL 数据库中的所有用户 −

SELECT Host, User, User_attributes, account_locked
FROM mysql.user;

Output

获得的输出如下所示 −

实际的用户表包含比本章显示的更多的列/字段。但是,为了简单起见,此处只显示了一些信息。

请注意,这些用户的列表是系统本地的。因此,并非所有系统都会给出相同输出(默认用户除外)。

Show Current User

不仅是所有用户的列表,MySQL 还可以查看当前用户。这是在 user() 或 current_user() 函数的帮助下完成的。

Syntax

以下是显示当前用户的语法 −

SELECT user();
or
SELECT current_user();

Example

使用以下查询,让我们使用 user() 函数在 MySQL 数据库中显示当前登录用户的用户名 −

SELECT user();

Output

以下是所获得的输出 −

Example

在这里,我们正在使用 current_user() 函数来显示当前用户 −

SELECT current_user();

Output

获得的输出如下 −

Show Currently Logged in Users

当前用户和当前登录用户之间的区别在于,当前用户是正在执行查询的用户;而当前登录用户列表包括所有目前连接到 MySQL 服务器的活动用户。

可以使用 SELECT 语句从“information_schema.processlist”表中提取此信息。

Example

在以下查询中,我们正在检索所有当前已登录用户的信息 -

DESC information_schema.processlist;

Output

以下是上面代码的输出: -

Example

在此处,我们正在从信息模式中检索当前用户、主机、数据库和命令的信息 -

SELECT user, host, db, command
FROM information_schema.processlist;

Output

执行上面的代码后,我们得到以下输出: -

Show Users Using a Client Program

我们还可以使用客户端程序来显示有关 MySQL 用户的信息。

Syntax

以下是使用各种编程语言显示有关 MySQL 用户的信息的语法 -

Example

以下是这些程序 −