MySQL 视频课 · 50 集 / 组
DCL:用户管理与权限控制
P24–P26 · 共 3 集 · 每集独立 anchor,可直接从目录跳到本页某一集
视频 p=24 · 时长 10:58
P24 24. 基础-SQL-DCL-用户管理-
原视频:在 B 站新标签打开(p=24) · 单独打开这一集 →
看视频,对照阅读:在新标签打开原视频(p=24)
DCL 的第一半:怎么建、改、删一个数据库账号。
复习模式:快速跳知识点(详解在下方各节)
复习顺序:先看“一句话理解”能否复述,再扫步骤,最后做自测;答不出时回到小例与易错。
一句话理解
DCL 管的是“谁能连进来”:建用户、改密码、删用户;账号由用户名和主机名一起定位。
按这 4 步做
- 先看现有账号:USE mysql; SELECT user, host FROM user; 只读查看,不改任何东西。
- 建用户:CREATE USER '用户名'@'主机名' IDENTIFIED BY '密码';主机名 localhost 只允许本机,% 允许远程。
- 改密码:ALTER USER '用户名'@'主机名' IDENTIFIED BY '新密码'。
- 删用户:DROP USER '用户名'@'主机名'。
小例
CREATE USER 'mysqlnotes_demo'@'localhost' IDENTIFIED BY 'LocalOnly_ChangeMe_01';
ALTER USER 'mysqlnotes_demo'@'localhost' IDENTIFIED BY 'LocalOnly_ChangeMe_02';
DROP USER 'mysqlnotes_demo'@'localhost';
【原创演示】三句按顺序演示“建—改—删”,全部限定 localhost,只用于本机练习库。两个密码串是明显的占位值,不是任何真实口令;真机上要换成自己保管的强密码,并且不要把密码写进脚本或提交进仓库。p24.sql 里那两句 SELECT ... FROM mysql.user 只是只读查看账号表,别直接改这张系统表。这些语句只在本机练习库和临时账号上有意义;本页原创例已在隔离的 MySQL 8.0.46 测试实例执行通过(账号用完即删),不是视频里那次演示的复现。
易错点
- 图省事建一个能从任意主机登录的管理员账号,或把全部权限一次性给业务账号:等于把整台实例交给任何能连上的人;练习只用最小权限的 localhost 账号。
- 漏写或写错主机名:'u'@'localhost' 与 'u'@'%' 是两个不同账号,删掉一个另一个还在。
- 把密码硬编码进脚本或截图:示例里只能出现占位串,真实密码应由使用者在本地输入并妥善保管。
30 秒速记
自测(2 题,先答再展开)
自测 1:为什么建用户必须写主机名?
MySQL 用“用户名@主机名”共同标识账号,同一用户名从不同来源登录可以是不同账号,权限各自独立。
自测 2:DROP USER 之后,这个账号的权限记录会残留吗?
不会。DROP USER 会连同该账号在权限表里的记录一起删除,“只删账号不删权限”的担心在这里不成立。
材料与来源
展开材料出处、讲义页码与证据等级
| 材料 | 类型 / 位置 | 支持了什么 |
|---|---|---|
| P24 原视频页(BV1Kr4y1i7ru) | 平台视频页 · P24;采样静帧 t012/t20/t30/t40/t50/t60/t70/t80/tend | t20 为“DCL-管理用户”四步语法页。 |
| MySQL 8.0 Reference:CREATE USER | 官方文档 | 核对账号名/主机名与认证插件的写法,未逐字引用。 |
| MySQL 8.0 Reference:账号管理语句 | 官方文档 | 核对 ALTER USER / DROP USER 语义。 |
按 t20 帧核对:幻灯片“DCL-管理用户”列出四件事——查询用户(USE mysql; SELECT * FROM user;)、创建用户(CREATE USER '用户名'@'主机名' IDENTIFIED BY '密码')、修改密码(ALTER USER … IDENTIFIED WITH mysql_native_password BY '新密码')、删除用户(DROP USER)。正文示例为原创改写,用 localhost 练习账号和明显占位密码,未使用视频里的账号名与密码;无字幕,讲师演示过程未核实,也未在任何实例上执行。
讲义对照:讲义 2.7.1 管理用户 · p51(公开镜像;按主题对应,切点 notexact)
- 画面静帧 9 帧,采样点 0:12–10:45 / 全片 10:58(只用于确认画面主题,不作内容边界)
- 原声字幕未取得:匿名接口字幕轨为空且需登录,未使用任何账号
等级含义:平台视频页 / 官方文档 / 课件 = 原始材料;二手整理 = 参考;推断 = 未经核实。站内补充的解释与练习会在此说明。
视频 p=25 · 时长 8:25
P25 25. 基础-SQL-DCL-权限控制-
原视频:在 B 站新标签打开(p=25) · 单独打开这一集 →
看视频,对照阅读:在新标签打开原视频(p=25)
DCL 的第二半:账号建好后,怎么精确地给权限、收权限。
复习模式:快速跳知识点(详解在下方各节)
复习顺序:先看“一句话理解”能否复述,再扫步骤,最后做自测;答不出时回到小例与易错。
一句话理解
权限控制决定“连进来以后能做什么”:给账号授权、收回权限,粒度可以细到某库某表。
按这 4 步做
- 先有账号再授权:
CREATE USER '用户名'@'主机名' IDENTIFIED BY '密码';建号,然后GRANT 权限列表 ON 库名.表名 TO '用户名'@'主机名';授权,多个权限用逗号分隔。MySQL 8 的 GRANT 不会自动建号,账号不存在会报 1410。 - 收回:REVOKE 权限列表 ON 库名.表名 FROM '用户名'@'主机名'。
- 查看:SHOW GRANTS FOR '用户名'@'主机名',确认实际生效的权限。
- 用该账号实际连一次,验证能查、不能改,而不是只看语句执行成功。
小例
-- 本机学习演示:账号只在本机,脚本结束就删号;密码是写出来给人看的占位串,不是真实口令
DROP USER IF EXISTS 'mysqlnotes_demo'@'localhost';
CREATE USER 'mysqlnotes_demo'@'localhost' IDENTIFIED BY 'LocalOnly_Demo_ChangeMe_01';
GRANT SELECT, INSERT ON mysqlnotes_p25.employee TO 'mysqlnotes_demo'@'localhost';
SHOW GRANTS FOR 'mysqlnotes_demo'@'localhost';
REVOKE INSERT ON mysqlnotes_p25.employee FROM 'mysqlnotes_demo'@'localhost';
DROP USER 'mysqlnotes_demo'@'localhost';
【原创演示】这是本机学习用的演示账号:'mysqlnotes_demo'@'localhost' 只在你自己机器上存在,由本页练习脚本 p25.sql 建库、建号,结束时删号,和视频里的 itcast/heima 账号无关;密码 LocalOnly_Demo_ChangeMe_01 是明显的占位串,不是任何真实口令或生产凭据。这几句演示“建号 → 给 mysqlnotes_p25.employee 授查+插 → SHOW GRANTS 复核 → 收回插入只留查询 → 删号”,授权范围写死到库.表,不用 *.*。本页原创例已在隔离的 MySQL 8.0.46 实例跑通(临时库 + 临时账号,结束即清理);真实环境请换成自己保管的强密码,别把密码写进仓库。
易错点
- 图快把全部权限一次性授到整个实例:一旦出问题既难定位也难收窄;应当逐项授权、限定到库.表。
- 只授权不看 SHOW GRANTS:账号可能还带着之前的旧权限,改完必须复核。
- 直接改 mysql 库的权限表就以为生效:手工改表需要额外刷新权限,正规做法是用 GRANT/REVOKE。
30 秒速记
自测(2 题,先答再展开)
自测 1:为什么示例把权限限定到 mysqlnotes_p25.employee,而不是整库?
权限范围越小,误用和被盗的影响面越小;只读账号不需要同库其它表的写权限。
自测 2:授予成功后怎样确认真的生效?
先用 SHOW GRANTS 看记录,再用该账号实际连一次执行允许和不允许的操作;两步都过才算验证。
材料与来源
展开材料出处、讲义页码与证据等级
| 材料 | 类型 / 位置 | 支持了什么 |
|---|---|---|
| P25 原视频页(BV1Kr4y1i7ru) | 平台视频页 · P25;采样静帧 t012/t20/t30/t40/t50/t60/t70/t80/tend | t40 帧可见 Workbench 内的建号/改密/删号演示画面。 |
| MySQL 8.0 Reference:GRANT 语句 | 官方文档 | 核对权限列表与库.表范围的写法,未逐字引用。 |
P25 标题为“DCL-权限控制”。采样帧 t40 可见讲师在 Workbench 里演示建号/改密/删号(账号名形如 itcast@localhost、heima@%),具体授权语句未在帧中取得;正文 GRANT/REVOKE 示例按 MySQL 8.0 语法原创编写,使用 localhost 演示账号与独立练习库 mysqlnotes_p25;本页原创例已在隔离的 MySQL 8.0.46 实测通过(账号建完即删,公开的密码是本机占位串,不含真实凭据),未照抄视频账号。
讲义对照:讲义 2.7.2 权限控制 · p52(公开镜像;按主题对应,切点 notexact)
- 画面静帧 9 帧,采样点 0:12–8:12 / 全片 8:25(只用于确认画面主题,不作内容边界)
- 原声字幕未取得:匿名接口字幕轨为空且需登录,未使用任何账号
等级含义:平台视频页 / 官方文档 / 课件 = 原始材料;二手整理 = 参考;推断 = 未经核实。站内补充的解释与练习会在此说明。
视频 p=26 · 时长 2:56
P26 26. 基础-SQL-DCL小结
原视频:在 B 站新标签打开(p=26) · 单独打开这一集 →
看视频,对照阅读:在新标签打开原视频(p=26)
DCL 两集的一页回忆清单。
这一集在讲什么
DCL 小结只有两块:用户管理和权限控制。
要点(3 条)
- 用户管理:
CREATE USER、ALTER USER、DROP USER;账号写成用户名@主机名,两段一起才唯一。 - 权限控制:
GRANT授权、REVOKE收回,SHOW GRANTS复核;权限可以细到某库某表。 - 只在本地测试库、用最小权限账号练;DCL 改的是“谁能做什么”,不碰表里的数据。
30 秒回忆
想再练一下(1 题,选做)
自测 1:DCL 和 DML 改的东西有什么不同?
DML 改表里的行数据;DCL 改账号与权限这类“谁能做什么”的规则,不碰业务数据。
材料与来源
展开材料出处、讲义页码与证据等级
| 材料 | 类型 / 位置 | 支持了什么 |
|---|---|---|
| P26 原视频页(BV1Kr4y1i7ru) | 平台视频页 · P26;采样静帧 t012/t20/t30/t40/t50/t60/t70/t80/tend | t20–tend 为小结页:1 用户管理 / 2 权限控制。 |
| MySQL 8.0 Reference:账号管理语句 | 官方文档 | 核对 SHOW GRANTS 等语句,未逐字引用。 |
讲义无“小结”正文;本页参照前节 2.7 DCL(p50–53)整理。画面 t20–tend 帧为小结页,只有“用户管理 / 权限控制”两条;原声字幕未取得,讲师逐句讲解未核。
讲义对照:参照前节整理,无独立讲义正文;参照前节 2.7 DCL(p50–53)
- 画面静帧 9 帧,采样点 0:12–2:43 / 全片 2:56(只用于确认画面主题,不作内容边界)
- 原声字幕未取得:匿名接口字幕轨为空且需登录,未使用任何账号
等级含义:平台视频页 / 官方文档 / 课件 = 原始材料;二手整理 = 参考;推断 = 未经核实。站内补充的解释与练习会在此说明。