一、什么是 DCLSQL 语言分为四大类DDL数据定义库、表结构操作CREATE/DROP/ALTERDML数据操纵表里增删改查INSERT/DELETE/UPDATE/SELECTDQL数据查询SELECT查询语句DCLData Control Language 数据控制语言专门用来管理数据库用户、分配回收访问权限核心指令CREATE USER、DROP USER、GRANT、REVOKE、SET PASSWORD、FLUSH PRIVILEGES。日常开发、运维、数据库安全隔离都离不开 DCL不同业务账号分配最小权限避免删库、泄露数据风险。二、24. DCL 用户管理创建 / 修改 / 删除 / 查看用户MySQL 用户完整格式用户名访问主机rootlocalhost仅本机登录user%任意 IP 远程登录user192.168.1.%指定网段访问1. 查看所有用户用户信息存储在系统库mysql的user表USE mysql; SELECT user, host FROM user;2. 创建新用户语法CREATE USER 用户名主机 IDENTIFIED BY 密码;示例-- 仅本地登录 CREATE USER devlocalhost IDENTIFIED BY Dev123456; -- 任意远程地址登录 CREATE USER test% IDENTIFIED BY Test654321;3. 修改用户密码方式 1SET PASSWORD推荐SET PASSWORD FOR devlocalhost PASSWORD(NewDev789);方式 2ALTER USERMySQL5.7/8.0 标准ALTER USER devlocalhost IDENTIFIED BY NewPass123;4. 修改用户允许访问的主机UPDATE mysql.user SET host % WHERE user dev; FLUSH PRIVILEGES; -- 刷新权限生效5. 删除用户DROP USER IF EXISTS test%;三、25. DCL 权限控制授予 / 回收 / 查看权限1. 常用数据库权限权限名作用SELECT查询表数据INSERT插入数据UPDATE更新数据DELETE删除数据CREATE创建库 / 表DROP删除库 / 表ALTER修改表结构ALL PRIVILEGES全部权限除 GRANT 授权权限2. GRANT 授予权限语法DROP USER IF EXISTS test%;场景 1给 dev 用户分配 test_db 下所有表查询、新增权限GRANT SELECT,INSERT ON test_db.* TO devlocalhost;场景 2分配全库所有权限运维账号慎用GRANT ALL PRIVILEGES ON *.* TO admin%;授权后刷新生效FLUSH PRIVILEGES;3. 查看用户已有权限SHOW GRANTS FOR devlocalhost;4. REVOKE 回收权限回收已分配的指定权限REVOKE INSERT ON test_db.* FROM devlocalhost; FLUSH PRIVILEGES;回收全部权限REVOKE ALL PRIVILEGES ON *.* FROM admin%;权限最小化原则生产环境禁止给业务账号ALL PRIVILEGES只分配业务必需的SELECT/INSERT/UPDATE不授予DROP/ALTER高危权限防止误操作破坏数据。四、26. DCL 完整知识点小结1. DCL 核心作用管控数据库登录账号与访问权限保障数据库数据安全实现多账号权限隔离。2. 用户管理核心命令查询用户SELECT user,host FROM mysql.user创建用户CREATE USER 用户名主机 IDENTIFIED BY 密码修改密码ALTER USER / SET PASSWORD删除用户DROP USER3. 权限控制核心命令授权GRANT 权限 ON 库.表 TO 用户回收权限REVOKE 权限 ON 库.表 FROM 用户查看权限SHOW GRANTS FOR 用户刷新权限FLUSH PRIVILEGES修改用户 / 权限后必须执行4. 生产最佳实践区分账号管理员 root、运维账号、业务读写账号各司其职限制访问主机业务账号限定应用服务器 IP禁止%全开放远程最小权限分配不给业务账号删表、删库、修改结构权限定期清理闲置用户定期轮换账号密码。5. 易踩坑点创建用户、授权时用户名 主机必须完全匹配否则不生效修改用户表、权限表后忘记执行FLUSH PRIVILEGES变更不生效弱密码账号直接对外开放远程访问存在数据库泄露风险开发环境随意使用ALL PRIVILEGES直接复制到生产环境。结尾DCL 是数据库安全的基础不管后端开发还是运维都必须熟练掌握。合理划分用户、精细控制权限能极大降低删库、数据泄露等线上事故概率。下一章我们可以结合真实业务场景演示一套完整的生产账号权限分配脚本。