Mysql

关注公众号 jb51net

关闭
首页 > 数据库 > Mysql > 查询MySQL用户

查询MySQL用户两种的最常用方法总结

作者:青草地溪水旁

在MySQL数据库管理中,查看用户信息是权限控制和安全审计的基础操作,这篇文章主要介绍了查询MySQL用户两种的最常用方法,文中通过代码介绍的非常详细,需要的朋友可以参考下

前言

查询 MySQL 用户有多种方法,主要分为两大类:使用 MySQL 命令行工具使用图形化界面工具

我将以最常用和权威的命令行方式为主进行详细说明。

方法一:使用 MySQL 命令行工具(最直接的方法)

首先,你需要使用一个具有足够权限的账户(如 root 用户)登录到 MySQL 服务器。

mysql -u root -p

然后输入密码。

1. 查询所有用户列表(核心方法)

MySQL 将所有用户账户信息存储在默认数据库 mysqluser 表中。因此,直接查询该表即可。

SELECT User, Host FROM mysql.user;

解释:

执行结果示例:

+------------------+-----------+
| User             | Host      |
+------------------+-----------+
| mysql.infoschema | localhost |
| mysql.session    | localhost |
| mysql.sys        | localhost |
| root             | localhost |
| myapp_user       | %         |
| readonly_user    | 192.168.1.% |
+------------------+-----------+

2. 获取更详细的用户信息

你可以从 mysql.user 表中选择更多的列来获取用户的详细权限和设置。

SELECT 
    User, 
    Host,
    account_locked,
    password_expired,
    authentication_string,
    Select_priv,
    Insert_priv,
    Update_priv,
    Delete_priv
FROM mysql.user;

解释:

3. 以更清晰的格式查看当前用户

如果你想查看当前登录的是哪个用户,可以使用以下函数:

SELECT CURRENT_USER();

输出示例:

+----------------+
| CURRENT_USER() |
+----------------+
| root@localhost |
+----------------+

4. 查看当前登录的用户(会话信息)

这个方法显示的是你通过哪个用户认证进入当前会话的,与 CURRENT_USER() 结果一致。

SELECT USER();
-- 或者
SELECT SYSTEM_USER();

方法二:使用图形化界面工具(如 phpMyAdmin, MySQL Workbench)

如果你使用图形化工具,操作会更简单直观。

  1. 登录到你的数据库管理工具。
  2. 在左侧的导航栏(对象浏览器)中,找到并点击 “用户和权限”“Users and Privileges”
  3. 点击后,工具会自动加载并显示一个所有用户的列表,通常会包含用户名、主机名以及一些基本权限信息。你可以点击具体的用户来查看和管理其详细权限。

重要提示和最佳实践

  1. 权限要求: 执行 SELECT ... FROM mysql.user 需要 SELECT 权限。通常只有 root 用户或具有全局权限的管理员用户才有此权限。
  2. 安全警告mysql.user 表是系统核心表,不要直接使用 DELETE, UPDATE, INSERT 等语句修改它,除非你非常清楚自己在做什么。建议使用专门的 SQL 命令来管理用户,例如:
    • 创建用户: CREATE USER 'username'@'host' IDENTIFIED BY 'password';
    • 删除用户: DROP USER 'username'@'host';
    • 授予权限: GRANT ... ON ... TO 'username'@'host';
  3. 密码字段: 在 MySQL 5.7.6 及以上版本中,密码存储在 authentication_string 列。在老版本(如 5.6)中,可能仍然叫 Password 列。如果你在查询密码哈希值时发现列为空,可能是因为用户使用了 mysql_native_password 之外的认证插件(如 auth_socket)。

总结

对于绝大多数情况,你只需要记住并在 MySQL 命令行中执行这一条命令

SELECT User, Host FROM mysql.user;

这就能清晰地列出数据库中的所有用户及其允许连接的主机,这是进行用户管理和权限排查的第一步。

到此这篇关于查询MySQL用户两种最常用方法的文章就介绍到这了,更多相关查询MySQL用户内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文