MySQL DCL 数据控制语句使用:GRANT/REVOKE 权限管理、用户管理、最小权限原则。
写在前面:合法学习边界
本文讲 MySQL DCL 权限管理,不涉及数据库攻击。
一、DCL 四大语句

1
2
| DCL = Data Control Language(数据控制)
GRANT(授权) · REVOKE(收回权限)
|
二、创建用户
1
2
| CREATE USER 'app'@'%' IDENTIFIED BY 'P@ssw0rd123';
CREATE USER 'dba'@'localhost' IDENTIFIED BY 'P@ssw0rd456';
|
三、授权
1
2
3
4
5
6
7
8
9
10
| -- 只读权限
GRANT SELECT ON mydb.* TO 'app'@'%';
-- 增删改权限
GRANT SELECT, INSERT, UPDATE, DELETE ON mydb.* TO 'app'@'%';
-- DBA 全权限
GRANT ALL PRIVILEGES ON *.* TO 'dba'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES;
|
四、收回权限
1
2
| REVOKE DELETE ON mydb.users FROM 'app'@'%';
REVOKE ALL PRIVILEGES ON *.* FROM 'dba'@'localhost';
|
五、安全建议
1
2
3
4
5
| ① 禁止 ALL PRIVILEGES 给应用账号
② 限制连接来源 IP(localhost > %)
③ 定期审查权限列表
④ 使用最小权限原则
⑤ 密码强度要求(大写+小写+数字+特殊字符)
|
六、小结
DCL 是数据库安全的核心。最小权限原则是黄金法则:应用账号只给 SELECT/INSERT/UPDATE/DELETE,DBA 权限严格限制在 localhost。