在使用 MySQL 或其它关系型数据库的时候,免不了需要查看所有用户的信息,比如这些用户分别有什么权限,何时创建的之类。这篇文章里我们讨论,如何在 MySQL 中查看所有用户的信息。
SHOW DATABASES
不幸的是,MySQL没有像 SHOW DATABASES、SHOW TABLES 等那样的列出用户命令。虽然多数关系型数据库的 SQL 部分语法是遵循标准的,但用户管理之类的部分则不一样。
因此,要列出MySQL数据库服务器中的所有用户,你可以使用以下查询。
列出所有用户
用以下语句可以查询所有用户
SELECT
user
FROM
mysql.user;
在这条语句中,我们从 mysql 数据库的用户表中查询用户数据。注意这里的 mysql
是你的数据库的名字,在执行时你应该把它替换为你自己的数据库名字,比如说如果你的数据库叫 production
那你需要用类似 use production
这条语句先告诉引擎你需要用的数据库名字。查询时将 FROM
后的值变为 production.user
。
注:要执行上面这个查询,必须以管理员身份登录
如果需要登录 MySQL 数据库服务器,命令如下
>mysql -u root -p
Enter password: 你的密码
mysql> use mysql;
Database changed
mysql> SELECT user FROM user;
输出结果为:
+-----------+
| user |
+-----------+
| mysql.sys |
| mysqlxsys |
| root |
+-----------+
3 rows in set (0.00 sec)
上面输出的结果代表我们的本地数据库中有三个用户。

连接数据库后需要开发后台系统?
这里推荐一下可与 MySQL 搭配使用的卡拉云。卡拉云是一套低代码开发工具,可接入常见的数据库(MySQL、MongoDB等)及 RESTful API, 你无需懂会任何前端技术,只要会写 SQL,就可以快速搭建属于你自己的数据库管理工具。>> 深入了解卡拉云 <<
在 MySQL 中查看用户的详细信息
要想获得关于用户表的更多信息,可以使用下面的命令预览其列。
DESC user;
例如,要显示用户和其他信息 如账户锁定,密码到期状态,你使用以下查询:
SELECT
user,
host,
account_locked,
password_expired
FROM
user;
也就是说,你可以用 SELECT 命令查询用户具体的列信息。如果需要创建一个新用户,请参考 MySQL 中创建新用户。
MySQL 中如何查看当前用户
这里我们介绍获取当前用户的命令。
user 函数
要获得当前用户的信息,使用user()函数,如下面的语句所示。
mysql> SELECT user();
+-----------------+
| user() |
+-----------------+
| local@localhost |
+-----------------+
1 row in set (0.00 sec)
current_user 函数
mysql> SELECT current_user();
+----------------+
| current_user() |
+----------------+
| local@localhost |
+----------------+
1 row in set (0.00 sec)
如何查看当前登录状态的 MySQL 用户
如果你有多个用户,现在需要查看哪些用户连接着 MySQL,你可以用以下命令来查询当前登录用户的信息
SELECT
user,
host,
db,
command
FROM
information_schema.processlist;
这个命令非常有用,比如你可以查看权限是否有被盗用,是否有未授权的用户登录等。
总结
这篇文章里我们总结了在 MySQL 中,如何查看所有用户,和其它几个查看用户的命令和方式。关于其它 MySQL 相关教程,请参考其它几篇推荐文章。在 MySQL 中查看数据库用户是个非常常见的操作,如果能记下来灵活地用可以省不少时间。
卡拉云是一套快速搭建企业内部工具的开发平台,下面的 Demo 是使用卡拉云搭建的「SQL admin」管理工具,试试里的功能,你也可以用 10 分钟搭建一套属于你的后台管理工具,了解更多。
卡拉云是新一代低代码开发平台,与 Vue 这类框架相比,卡拉云无需配置开发环境,直接注册即可开始搭建。开发者无需处理任何前端问题,简单拖拽即可生成表格、表单、富文本等功能组件,一键接入数据库及 API,快速完成企业内部工具搭建,还可以分享给团队成员共享使用,数周的开发时间,缩短至 1 小时。
扩展阅读:
- 最好的 6 个免费天气 API 接口对比测评
- 12 款最棒 Vue 开源 UI 库测评 - 特别针对国内使用场景推荐
- 最棒的 7 个 Laravel admin 后台管理系统推荐
- Retool 是什么,怎么样? —— Retool 低代码工具测评
- 最好用的 5 个 Vue select 单选多选下拉组件
- 最好用的 7 款 Vue admin 后台管理框架测评
本文参考:
how-to-get-a-list-of-user-accounts-using-the-command-line-in-mysql