有时您想在 MySQL 中管理数据库。在这种情况下,我们需要查看数据库中所有用户帐户的列表。大多数时候,我们假设有一个类似于 SHOW DATABASES、SHOW TABLES 等的SHOW USERS命令,用于显示数据库服务器中所有可用用户的列表。不幸的是,MySQL 数据库没有 SHOW USERS 命令来显示 MySQL 服务器中所有用户的列表。我们可以使用以下查询来查看数据库服务器中所有用户的列表:
mysql> Select user from mysql.user;
上面语句执行成功后,我们就会从MySQL数据库服务器的user表中获取到用户数据。
让我们看看如何使用这个查询。首先,我们要使用mysql客户端工具打开MySQL服务器,以管理员身份登录服务器数据库。执行以下查询:
> mysql -u root -p
Enter password: *********
mysql> use mysql;
Database changed
mysql> SELECT user FROM user;
我们将获得以下输出,我们可以在其中看到本地数据库中的五个用户:
如果我们想查看用户表的更多信息,请执行以下命令:
mysql> DESC user;
它将给出以下输出,其中列出了mysql.user数据库的所有可用列:
要获取主机名、密码过期状态和帐户锁定等选定信息,请执行如下查询:
mysql> SELECT user, host, account_locked, password_expired FROM user;
执行成功后,输出如下:
显示当前用户
我们可以通过user()或者current_user()函数获取当前用户的信息,如下图:
mysql> Select user();
or,
mysql> Select current_user();
执行上述命令后,我们将得到以下输出:
显示当前登录的用户
我们可以通过在 MySQL 服务器中使用以下查询来查看数据库服务器中当前登录的用户:
mysql> SELECT user, host, db, command FROM information_schema.processlist;
上面的命令给出了输出,如下图:
在此输出中,我们可以看到当前有四个用户登录到数据库中,其中一个正在执行Query,而其他则显示在Sleep 或 Daemon状态。