✏️ 课堂习题
第 8 章 · MySQL 安全管理 · 共 8 题 · 由易到难
1
MySQL 中用户由什么唯一确定?主机部分 % 和 localhost 分别代表什么?
▼
参考答案
用户由 '用户名'@'主机' 共同唯一确定。% 表示任意主机可登录;localhost 表示仅本机可登录。
2
创建新用户、删除用户的 SQL 分别是什么?root 用户能被删除吗?
▼
参考答案
创建:CREATE USER 'u'@'localhost' IDENTIFIED BY 'pwd'; 删除:DROP USER 'u'@'localhost';。root 不能被删除,它是超级管理员。
3
授予用户 test6 对"教学实例"库所有表全部权限的语句是?
▼
参考答案
GRANT ALL ON 教学实例.* TO 'test6'@'localhost' IDENTIFIED BY '123456'; —— 教学实例.* 表示该库所有表,ALL 表示全部权限。
4
收回用户 test5 全部权限、并查看其剩余权限的命令分别是什么?
▼
参考答案
收回:REVOKE ALL ON *.* FROM 'test5'@'localhost'; 查看:SHOW GRANTS FOR 'test5'@'localhost';(收回后通常只剩 USAGE 登录权限)。
5
权限的四个级别从粗到细依次是什么?
▼
参考答案
由粗到细:全局级(*.*)→ 数据库级(库.*)→ 表级(库.表)→ 列级(库.表(列))。范围越具体,权限越精细。
6
判断题:用 UPDATE 直接改 mysql.user 表的密码后,立即生效,无需额外操作。(对 / 错)
▼
参考答案
❌ 错。直接改系统表后必须执行 FLUSH PRIVILEGES; 刷新权限缓存,否则改动不生效。更推荐用 ALTER USER 改密码,自动生效。
7
什么是"最小权限原则"?为什么授权时不要图省事直接给 ALL?
▼
参考答案
最小权限原则:只授予用户完成工作所必需的权限。直接给 ALL 等于把"万能钥匙"交出,一旦账号泄露或被误用,可能造成整库数据被删改,风险极大。
8
下面授权语句的作用范围是什么?
GRANT SELECT ON 教学实例.student TO 'u1'@'localhost';▼
参考答案
作用范围是教学实例库的 student 表(表级权限):u1 只能对这张表做 SELECT 查询,不能查其他表,也不能插入/修改/删除。
🖥️ 上机练习
第 8 章 · MySQL 安全管理 · 共 5 个实训任务 · DCL 安全演练 · 2 人互助
🎯 本次上机目标:在本地 MySQL 上完成"建用户 → 授权 → 验证 → 收回 → 删除"的完整安全操作闭环。建议在测试环境操作,勿动 root 权限。
任务 1
建只读用户
创建用户 reader@localhost,授予对教学实例库所有表的 SELECT 权限。
任务 2
验证权限
用 reader 登录,尝试 SELECT student(应成功)和 DELETE student(应报无权限错误)。
任务 3
建录入员
创建 sc_admin@localhost,只对教学实例.sc 表授予 SELECT/INSERT/UPDATE/DELETE。
任务 4
查看与收回
用 SHOW GRANTS 查看 sc_admin 权限;然后用 REVOKE 收回其 DELETE 权限,再次查看确认。
任务 5
清理账号
对 reader、sc_admin 执行 DROP USER 删除,保持环境整洁。