MySQL修改密码与用户访问权限设置详解

认真发呆
认真发呆
发布时间:2026-10-13| 5人浏览过
原创

为提升数据库安全性,需要掌握MySQL的密码重置与精细化权限控制。本文涵盖使用命令行工具及SQL语句修改密码的六种方法,并详解如何通过直接操作用户表或授予权限来设置严格的访问限制。

MySQL修改密码的常用方法

修改MySQL密码通常需要具备root权限。以下是几种主流且有效的密码管理方式:

第1步:使用 mysqladmin 命令行工具

这是最便捷的非交互式修改方式。在终端执行以下命令:mysqladmin -u root -p oldpassword newpasswd。
输入当前root密码后,系统将把root用户的密码更新为新值。若连接失败或无执行权限,此方法将无效且无法清空密码。

第2步:通过 INSERT 或 REPLACE 直接操作 user 表

适用于需要新增用户或覆盖现有账号信息的场景。在 mysql> 提示符下输入:

INSERT INTO mysql.user (Host,User,Password) VALUES ('%','system', PASSWORD('manager'));
FLUSH PRIVILEGES;

或者使用替换语句:
REPLACE INTO mysql.user (Host,User,Password) VALUES ('%','system', PASSWORD('manager'));
FLUSH PRIVILEGES;

注意:必须使用 PASSWORD() 函数对明文进行加密,且操作完成后务必执行 FLUSH PRIVILEGES 以刷新权限缓存。

第3步:使用 SET PASSWORD 语句

这是针对特定用户的直接赋值方法:

SET PASSWORD FOR system@"%" = PASSWORD('manager');

同样需要使用 PASSWORD() 函数,但无需执行 FLUSH PRIVILEGES。

第4步:利用 GRANT ... IDENTIFIED BY 语句

该命令集密码设置与权限授予于一体:

GRANT USAGE ON *.* TO system@"%" IDENTIFIED BY 'manager';

此处 PASSWORD() 函数非必需,且系统会自动处理权限生效,无需手动刷新。

第5步:图形化界面 (phpMyAdmin)

对于不熟悉命令行的用户,可直接登录 phpMyAdmin。在 mysql 库的 user 数据表中,选择目标记录点击编辑。在 Password 字段输入新密码(系统会自动调用加密函数)或直接粘贴已生成的密码哈希值,保存即可。


MySQL 访问限制与权限设置方法

为了实现细粒度的安全控制,我们可以在创建用户的同时设定其可访问的主机范围及具体的操作权限。假设我们要建立一个名为 system、密码为 manager 的管理员账户:

第1步:使用 GRANT ALL PRIVILEGES 授予最高权限

若希望用户能管理所有数据库和表,可以使用以下命令:

mysql> GRANT ALL PRIVILEGES ON *.* TO system@localhost IDENTIFIED BY 'manager' WITH GRANT OPTION;

执行成功后,屏幕通常会显示 Query OK, 0 rows affected (xx sec)。

第2步:精确设置单表/数据库权限(INSERT 方式)

如果只需赋予特定的基础操作权限(仅限查询、插入、更新和删除),可以通过直接往 user 表写入数据来实现。在 mysql> 提示符下运行:

mysql> INSERT INTO user VALUES('localhost','system', PASSWORD('manager'), 'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y');

关键参数说明:上述语句中包含多个 'Y' 字符,分别对应MySQL不同版本(如3.22.34)中的14项核心权限(按顺序排列):

  • Select_priv: 允许检索表中的数据。
  • Insert_priv: 允许向现有的表中插入新行。
  • Update_priv: 允许用新值更新现存表中的列。
  • Delete_priv: 允许删除满足条件的行。
  • Create_priv: 允许创建新的数据库、表或索引。
  • Drop_priv: 允许抛弃或删除现存数据库或表。
  • Reload_priv: 允许服务器重新读入授权表。
  • Shutdown_priv: 关闭服务器的权限。
  • Process_priv: 允许查看普通文本形式的当前正在执行的查询。
  • File_priv: 允许在服务器上读取任何可读的文件。
  • Grant_priv: 允许将你自己拥有的权限授予其他用户。
  • References_priv: 允许打开和关闭记录文件。
  • Index_priv: 允许创建或删除索引。
  • Alter_priv: 允许更改表格结构。

当只赋予 select、insert、update 和 delete 权限时,用户将只能在一个数据库中已有的表上实施基本的增删改查操作。

第3步:验证与测试

权限设置完毕后,建议新建一个数据库进行测试。例如输入:

create database XinXiKu;

系统将响应 Query OK, 1 row affected (0.00 sec) 表示建库成功,说明权限控制策略生效。

以上就是MySQL修改密码及访问限制的详细内容,更多关于MySQL权限管理的基础资料请关注本站其它相关文章!

相关标签:

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

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 算法库。