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

卡拉先生
发布于 2020年09月06日 | 上次编辑:2020年09月07日

header

在使用 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 中查看用户的详细信息

要想获得关于用户表的更多信息,可以使用下面的命令预览其列。

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 中查看数据库用户是个非常常见的操作,如果能记下来灵活地用可以省不少时间。

最后,如果你用 MySQL 存储数据,且需要搜索功能的话,可以尝试卡拉搜索,几行代码就可以接入,可以极大程度免去搭建和维护索引的烦恼。同时速度极快,可以方便运营和产品轻松调整排序算法。

推荐扩展阅读:

如何在MySQL中创建新用户并授权权限

Ubuntu 如何安装 MySQL

MySQL 与 Postgres 和 SQLite 的对比和优缺点

本文参考:

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

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

友情链接更新日志© 2020, 卡拉搜索, Built with ❤️ in San Francisco + Beijing

京ICP备15049164号-3