数据库原理与应用 第 8 章 · 第二节
课程 › 第 8 章 › 第二节 CREATE USER创建的例子Workbench 建用户查看用户RENAME USER修改口令DROP USER 版式
第 8 章 数据库安全性管理 · 第二节

用户管理

CREATE USER、查看用户、RENAME USER、修改口令和 DROP USER
本 节 知 识 点
  1. 06创建用户:CREATE USER
  2. 07创建用户的例子
  3. 08在 Workbench 中创建用户
  4. 09查看用户
  5. 10修改用户名:RENAME USER
  6. 11修改用户口令
  7. 12删除用户:DROP USER
06
第 8 章 · 第二节 · 课件第 17、18、20 页合并重做

创建用户:CREATE USER

创建用户时指定用户名、主机和口令。

8.3 MySQL 用户管理课件第 17、18、20 页合并

创建用户:CREATE USER

CREATE USER [IF NOT EXISTS] '用户名'@'主机' [IDENTIFIED BY '口令' | IDENTIFIED BY RANDOM PASSWORD] [WITH 资源限制] [, '用户名'@'主机' …];
部分说明
'用户名'@'主机'主机写 localhost 只能从本机登录,写 % 可以从任何主机登录。省略 @主机 时为 %
IDENTIFIED BY '口令'设置口令。不写时口令为空
RANDOM PASSWORD由 MySQL 生成随机口令,只在这一次的执行结果中显示
WITH 资源限制如 MAX_QUERIES_PER_HOUR 60,每小时最多执行 60 次查询
IF NOT EXISTS用户已存在时只给出警告。不写时报错 1396
  • 一条语句可以创建多个用户,用逗号分隔
  • 用户管理的五项操作:创建、查看、改名、改口令、删除

不要用 INSERT INTO mysql.user 创建用户,这样建的用户在 MySQL 8.0 中无法登录。创建用户用 CREATE USER。

重 点

新创建的用户只有 USAGE 权限,能登录,但不能访问任何数据库。

实 验

实验 1-2 创建用户

07
第 8 章 · 第二节 · 课件第 19 页

创建用户的例子

三个例子:一次创建一个用户、一次创建两个用户、设置资源限制。

课件第 19 页

练一练

'teacher1'@'%' 和 'teacher1'@'localhost' 是几个用户?
  1. A一个
  2. B两个
答案 B

用户由用户名和主机共同确定,主机不同就是两个用户,口令和权限也各自独立。

重 点

teacher5 没有写 IDENTIFIED BY,口令为空。

实 验

实验 1-3 用新用户登录

08
第 8 章 · 第二节 · 课件第 21 页

在 Workbench 中创建用户

点 Add Account,填写用户名、主机和口令。

课件第 21 页

重 点

Login Name、Limit to Hosts Matching、Password 就是用户名、主机、口令。

09
第 8 章 · 第二节 · 课件第 22 页

查看用户

查询系统表 mysql.user,可以列出服务器上的用户。

课件第 22 页

重 点

查看用户一般只查 User 和 Host 两列。

实 验

实验 1-1 查看已有的用户

10
第 8 章 · 第二节 · 课件第 23、24 页合并重做

修改用户名:RENAME USER

RENAME USER 可以同时修改用户名和主机。

8.3 MySQL 用户管理课件第 23、24 页合并

修改用户名:RENAME USER

RENAME USER '原用户名'@'原主机' TO '新用户名'@'新主机' [, '原用户名'@'原主机' TO '新用户名'@'新主机' …];
例 teacher1@% 改为 teacher10@localhost
RENAME USER 'teacher1'@'%'
TO 'teacher10'@'localhost';

用户名和主机一起修改

说明
  • 改名后口令和权限都不变
  • 新名字已经被使用时报错 1396
  • Workbench:在 Users and Privileges 中选中用户,在 Login 选项卡中修改 Login Name 和 Limit to Hosts Matching,点 Apply
11
第 8 章 · 第二节 · 课件第 25、26、27 页合并重做

修改用户口令

修改口令有四种方法,MySQL 8.0 推荐用 ALTER USER。

8.3 MySQL 用户管理课件第 25、26、27 页合并

修改用户口令的四种方法

1 mysqladmin 命令,在操作系统命令行中执行
mysqladmin -u student -p password

先输入原口令,再输入两次新口令

2 SET PASSWORD
SET PASSWORD FOR 'student'@'localhost'
    = 'student123';

不写 FOR 时,修改当前用户自己的口令

3 ALTER USER,MySQL 8.0 推荐的写法
ALTER USER 'student'@'localhost'
IDENTIFIED BY 'student123';
4 Workbench
  • 在 Users and Privileges 中选中用户,填写 Password 和 Confirm Password,点 Apply
  • 修改别人的口令需要 CREATE USER 权限,修改自己的口令不需要

不要用 UPDATE mysql.user 修改口令,改完后这个用户在 MySQL 8.0 中无法登录。

12
第 8 章 · 第二节 · 课件第 28、29 页合并重做

删除用户:DROP USER

DROP USER 删除用户和它的全部权限记录。

8.3 MySQL 用户管理课件第 28、29 页合并

删除用户:DROP USER

DROP USER [IF EXISTS] '用户名'@'主机' [, '用户名'@'主机' …];
例 删除 student
DROP USER 'student'@'localhost';
例 一次删除两个,不存在时不报错
DROP USER IF EXISTS
  'teacher2'@'localhost',
  'teacher9'@'localhost';
说明
  • 删除用户时,它在各个权限表中的记录一起删除
  • 用户不存在时报错 1396,加 IF EXISTS 只给出警告
  • Workbench:在 Users and Privileges 中选中用户,点 Delete

直接修改系统表容易出错,删除用户用 DROP USER。

保山学院·人工智能教研室·曹鼎鼎