Skip to content

MySQL安全管理:用户与权限控制详解

Published:  at  04:36 AM

DCL —— 用户管理语言(MySQL)

DCL(Data Control Language) 主要用于控制数据库的安全性,核心内容包括:

在 MySQL 中,DCL 语句通常作用于 mysql 系统数据库


一、用户管理

1. 查看数据库与用户表

-- 查看所有数据库
SHOW DATABASES;

-- 切换到系统数据库
USE mysql;

-- 查看用户表
SELECT * FROM user;

MySQL 中所有用户信息都存储在 mysql.user 表中。


二、创建用户

1. 基本语法

CREATE USER '用户名'@'主机名' IDENTIFIED BY '密码';

2. 主机名说明


3. 示例:创建用户

CREATE USER 'test'@'%' IDENTIFIED BY 'test01';

三、修改用户密码

1. 修改密码(旧版本写法,基于 user 表)

UPDATE user
SET authentication_string = PASSWORD('010214')
WHERE User = 'test';

PASSWORD() 为 MySQL 的加密函数,用于对明文密码进行加密。

⚠️ 注意:


四、删除用户

1. 语法

DROP USER '用户名'@'主机名';

2. 示例

DROP USER 'test'@'%';

五、忘记 root 密码的处理

当忘记 MySQL 的 root 用户密码时,需要通过 跳过权限表 的方式重置密码,步骤较为繁琐,通常涉及:


六、权限管理

1. 查询用户权限

SHOW GRANTS FOR 'test'@'%';

2. 授予权限

基本语法

GRANT 权限列表
ON 数据库名.表名
TO '用户名'@'主机名';

示例 1:授予部分权限

GRANT SELECT, DELETE, UPDATE
ON jdbcTest.bank
TO 'test'@'%';

示例 2:授予所有权限(不推荐用于生产环境)

GRANT ALL ON *.* TO 'test'@'%';

说明:


3. 撤销权限

基本语法

REVOKE 权限列表
ON 数据库名.表名
FROM '用户名'@'主机名';

示例

REVOKE SELECT, DELETE, UPDATE
ON jdbcTest.bank
FROM 'test'@'%';

七、常见权限类型说明

权限说明
SELECT查询数据
INSERT插入数据
UPDATE更新数据
DELETE删除数据
ALL所有权限
CREATE创建数据库 / 表
DROP删除数据库 / 表

八、小结


Suggest Changes

Previous Post
Docker使用指南与常用命令详解
Next Post
MySQL流程控制中的分支与循环结构详解