# P24 24. 基础-SQL-DCL-用户管理-

> 本页是学习笔记，不等同于视频逐字稿。原声字幕未取得（匿名接口字幕轨为空且需登录，未使用任何账号），也没有逐句讲解记录；讲义只按节与页码对应，切点未逐句确证。

> 以同版讲义的公开镜像核对章节与页码（镜像非官方出品）；非逐字稿，示例为原创补充。

## P24 24. 基础-SQL-DCL-用户管理-

- 原视频：https://www.bilibili.com/video/BV1Kr4y1i7ru/?p=24（p=24），时长 10:58
- 讲义：2.7.1 管理用户 p51（公开镜像；按主题对应，切点 notexact）

- 本集练习数据：practice/p24.sql（先执行，再对照小例）

### 一句话理解

DCL 管的是“谁能连进来”：建用户、改密码、删用户；账号由用户名和主机名一起定位。

### 步骤

1. 先看现有账号：USE mysql; SELECT user, host FROM user; 只读查看，不改任何东西。
2. 建用户：CREATE USER '用户名'@'主机名' IDENTIFIED BY '密码'；主机名 localhost 只允许本机，% 允许远程。
3. 改密码：ALTER USER '用户名'@'主机名' IDENTIFIED BY '新密码'。
4. 删用户：DROP USER '用户名'@'主机名'。

### SQL 示例

```
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 秒速记

账号 = 用户名 + 主机名；CREATE/ALTER/DROP USER；localhost 与 % 是两个账号；密码只放占位。

### 自测

1. 为什么建用户必须写主机名？
   - 答：MySQL 用“用户名@主机名”共同标识账号，同一用户名从不同来源登录可以是不同账号，权限各自独立。
2. DROP USER 之后，这个账号的权限记录会残留吗？
   - 答：不会。DROP USER 会连同该账号在权限表里的记录一起删除，“只删账号不删权限”的担心在这里不成立。

### 材料与来源

- [平台视频页] P24 原视频页（BV1Kr4y1i7ru） https://www.bilibili.com/video/BV1Kr4y1i7ru/?p=24
- [官方文档] MySQL 8.0 Reference：CREATE USER https://dev.mysql.com/doc/refman/8.0/en/create-user.html
- [官方文档] MySQL 8.0 Reference：账号管理语句 https://dev.mysql.com/doc/refman/8.0/en/account-management-statements.html

证据说明：按 t20 帧核对：幻灯片“DCL-管理用户”列出四件事——查询用户（USE mysql; SELECT * FROM user;）、创建用户（CREATE USER '用户名'@'主机名' IDENTIFIED BY '密码'）、修改密码（ALTER USER … IDENTIFIED WITH mysql_native_password BY '新密码'）、删除用户（DROP USER）。正文示例为原创改写，用 localhost 练习账号和明显占位密码，未使用视频里的账号名与密码；无字幕，讲师演示过程未核实，也未在任何实例上执行。
