MySQL查看所有用户 - MySQL 系列教程

A kitten
蒋川
B 端数据开发,卡拉云联合创始人
最近更新 2022年10月25日

MySQL查看所有用户 - MySQL 系列教程

在使用 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)

上面输出的结果代表我们的本地数据库中有三个用户。

连接数据库后需要开发后台系统?

试试卡拉云,拖拽组件连接 API 和数据库直接生成后台系统,两个月的工期降低至1天

这里推荐一下可与 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 分钟搭建一套属于你的后台管理工具,了解更多

卡拉云 SQL admin 后台管理系统

卡拉云是新一代低代码开发平台,与 Vue 这类框架相比,卡拉云无需配置开发环境,直接注册即可开始搭建。开发者无需处理任何前端问题,简单拖拽即可生成表格、表单、富文本等功能组件,一键接入数据库及 API,快速完成企业内部工具搭建,还可以分享给团队成员共享使用,数周的开发时间,缩短至 1 小时。

扩展阅读:

本文参考:

how-to-get-a-list-of-user-accounts-using-the-command-line-in-mysql

https://www.mysqltutorial.org/mysql-show-users