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

 更新时间:2025年12月23日 08:36:05   作者:青草地溪水旁  
在MySQL数据库管理中,查看用户信息是权限控制和安全审计的基础操作,这篇文章主要介绍了查询MySQL用户两种的最常用方法,文中通过代码介绍的非常详细,需要的朋友可以参考下

前言

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

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

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

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

mysql -u root -p

然后输入密码。

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

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

SELECT User, Host FROM mysql.user;

解释:

  • SELECT User, Host: 选择显示用户名列主机名列
  • FROM mysql.user: 从 mysql 数据库的 user 表中查询。
  • 在 MySQL 中,一个用户的完整标识是 '用户名'@'主机名'。主机名指定了该用户可以从哪里连接到数据库(例如,'root'@'localhost''root'@'%' 是两个不同的用户)。

执行结果示例:

+------------------+-----------+
| 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;

解释:

  • account_locked: 账户是否被锁定(Y/N)。
  • password_expired: 密码是否过期(Y/N)。
  • authentication_string: 密码的加密哈希值(在 MySQL 5.7.6+ 中,此列取代了 password 列)。
  • Select_priv, Insert_priv…: 这些列表示用户的全局权限(是否为 Y)。

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用户内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • MYSQL修改所有表的存储引擎格式语句

    MYSQL修改所有表的存储引擎格式语句

    MYSQL如何修改所有表的存储引擎格式,或许下面的sql语句对大家有所帮助
    2013-08-08
  • MySQL指令进行分页显示的使用示例

    MySQL指令进行分页显示的使用示例

    本文主要介绍了MySQL指令进行分页显示的使用示例,主要使用LIMIT命令来实现,具有一定的参考价值,感兴趣的可以了解一下
    2023-11-11
  • MySQL 日志表改造为分区表

    MySQL 日志表改造为分区表

    本文主要介绍了MySQL 日志表改造为分区表,以解决业务日志表占用大量存储空间且删除操作慢的问题,下面就来具体介绍一下,感兴趣的可以了解一下
    2025-02-02
  • MySQL数据库简介与基本操作

    MySQL数据库简介与基本操作

    这篇文章介绍了MySQL数据库与其基本操作,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-05-05
  • Navicat自动备份MySQL数据的流程步骤

    Navicat自动备份MySQL数据的流程步骤

    对于从事IT开发的工程师,数据备份我想大家并不陌生,这件工程太重要了!对于比较重要的数据,我们希望能定期备份,每天备份1次或多次,或者是每周备份1次或多次,所以本文给大家介绍了Navicat自动备份MySQL数据的流程步骤,需要的朋友可以参考下
    2024-12-12
  • win11设置mysql开机自启的实现方法

    win11设置mysql开机自启的实现方法

    本文主要介绍了win11设置mysql开机自启的实现方法,要通过命令行方式设置,具有一定的参考价值,感兴趣的可以了解一下
    2024-03-03
  • mysql 5.7.17的最新安装教程图文详解

    mysql 5.7.17的最新安装教程图文详解

    mysql-5.7.17-winx64是现在最新版本的Mysql,这是免安装的,所以要进行些配置,下面通过本文给大家介绍mysql 5.7.17的最新安装教程图文详解,感兴趣的朋友一起学习吧
    2017-03-03
  • MySQL大表数据碎片的判断与整理优化实战指南

    MySQL大表数据碎片的判断与整理优化实战指南

    在MySQL数据库运维过程中,大表的碎片问题是影响性能和磁盘空间利用率的常见痛点,删除、更新数据后极易产生碎片,导致表文件臃肿、查询变慢、磁盘空间浪费,本文将从碎片成因、判断方法、整理操作、注意事项四个维度,手把手教你搞定MySQL大表碎片整理优化
    2026-05-05
  • MySQL迁移到Oracle数据库的超详细步骤和方法总结

    MySQL迁移到Oracle数据库的超详细步骤和方法总结

    今天接到一个任务,让我把MySQL中的表与数据移植到Oracle中,所以这里总结下,这篇文章主要给大家介绍了关于MySQL迁移到Oracle数据库的超详细步骤和方法,需要的朋友可以参考下
    2023-11-11
  • MySQL 条件查询详解

    MySQL 条件查询详解

    这篇文章主要介绍了MySQL条件查询,本文通过示例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-05-05

最新评论