MySQL 8.0 用户管理实战:创建、授权、修改密码与撤销权限完整指南

阿麦
阿麦
发布时间:2026-10-16| 7人浏览过
原创

在 MySQL 8.0 中管理数据库用户需要遵循特定的操作流程,特别是涉及权限分配和加密插件兼容性时。本文通过实际 SQL 示例,演示如何登录服务器、查询现有用户、执行创建与删除操作,并重点解析授权(Grant)与撤销(Revoke)的具体用法。同时解决了因默认加密策略变更导致的旧版客户端连接失败问题,确保运维操作的准确性与安全性。

环境准备与登录

在进行任何用户管理操作前,需要使用具有管理权限的账户登录 MySQL 服务器。通常使用 root 账户以交互式方式进入:

mysql -uroot -p

输入密码后即进入 MySQL 命令行界面。在此界面下,你可以查看当前系统中存在的用户及其关联的主机信息,这是了解现状的基础步骤:

select host, user from mysql.user;

在执行后续操作前,建议先熟悉当前用户列表的结构。一般包含主管理员账户、系统内置账户以及由管理员创建的普通子账户。对于不再需要的测试账户或存在安全隐患的弱口令账户,应优先考虑清理。

第1步:安全删除用户

如果存在不再使用的用户,可以先将其删除以确保系统整洁。删除操作不可逆,请谨慎确认用户名和主机名匹配无误:

drop user '用户名'@'主机名';
drop user 'wyy'@'192.168.0.105';

第2步:创建新用户

创建用户是赋予访问权限的前提。基本语法如下,其中 @ 后的部分用于限制允许连接的来源 IP:

create user 'wyy'@'192.168.0.105' identified by 'wyy18222';

上述命令仅允许来自 192.168.0.105 的连接。若需允许任意 IP 地址连接,可将主机名替换为通配符 %:

create user 'test'@'%' identified by '密码';

注意 MySQL 8.0 的加密差异: MySQL 8.0 默认采用 caching_sha2_password 加密认证插件。这可能导致部分旧版客户端工具(如老版本 Navicat)无法连接并报错。如果遇到此类问题,可以在创建用户时显式指定旧的加密方式:

create user 'test'@'%' identified with mysql_native_password BY '密码';

第3步:授权管理 (Grant)

新建的用户默认没有任何数据库操作权限,必须显式进行授权。MySQL 提供了灵活的细粒度控制:

授予所有权限

若要给予用户在所有数据库和表上的完全控制权,可使用以下命令。此操作风险较高,仅限受信任的管理员:

grant all privileges on *.* to 'wyy'@'192.168.0.105' with grant option;
  • *.*:分别代表所有数据库和所有表。
  • with grant option:表示该用户可以将所获得的权限再授权给其他用户,但不可超越其自身的权限层级。此参数可根据实际需求选择添加或不添加。

授予特定数据库权限

出于安全原则,建议最小化授权。例如,只让用户 wyy 管理名为 xrs 的数据库:

grant all privileges on xrs.* to 'wyy'@'192.168.0.105';

授予单表或特定权限

也可以进一步精确到具体表的增删改查权限:

grant select, insert, update, delete on xrs.table_name to 'wyy'@'192.168.0.105';

或者将指定表的所有权限赋予用户:

grant all privileges on xrs.table_name to 'wyy'@'192.168.0.105';

常见错误提示: 在 MySQL 8.0 中,GRANT 语句不再支持直接在赋权时创建用户(即不能将 IDENTIFIED BY 写在 GRANT 后面)。必须严格分为两步:先 CREATE USER,再 GRANT。若在 MySQL 8 尝试合并操作会引发 SQL 语法错误。

第4步:刷新与验证权限

权限变更后不会立即对已建立的会话生效。为了使新配置立刻生效,必须刷新权限缓存:

flush privileges;

此外,也可选择重启 MySQL 服务使配置生效。要验证某个用户的权限设置是否准确,可查看其当前的授权清单:

show grants for 'wyy'@'192.168.0.105';

第5步:撤销权限 (Revoke)

当用户离职或需求变更时,应及时收回权限以防数据泄露。撤销权限的语法与授予类似,但动作变为 REVOKE:

revoke all privileges on *.* from 'wyy'@'192.168.0.105';

同样地,撤销权限后建议执行 FLUSH PRIVILEGES; 以确保系统状态同步。

总结

以上就是 MySQL 8.0 创建、删除用户以及授权、消权操作的详细内容,更多关于 MySQL 8.0 用户管理与权限控制的资料请关注本站其它相关文章!

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。