数据库原理与应用 第 8 章 · 上机三
课程第 8 章上机三 先备料库级授权表级和字段级换人实测三种必错转授权回收翻权限表连起来做 版式
第 8 章 数据库安全性管理 · 上机三

授权、查看与回收

四级授权各写一遍,换人实测边界,再一条条收回来。
已完成 0 / 8
本 次 上 机 题 目
  1. 01建两个账号,一个当查询员一个当组长
  2. 02把整个库的查询权给出去
  3. 03把范围一步步收窄
  4. 04用 teacher_a 登录,挨个试它的边界
  5. 05把最容易写错的三句一次撞完
  6. 06让 teacher_b 有权把权限再给别人
  7. 07只收点名的那一份
  8. 08从四张表里找出刚才那几句的痕迹
  9. 给一个新人配一套只读权限
01
第 8 章 · 上机三

建两个账号,一个当查询员一个当组长

两个号都建好,权限一项都还没给。

Welcome to the MySQL monitor. Commands end with ;
Server version: 8.0.36 MySQL Community Server - GPL
提示符写着你现在是谁。换人登录敲 mysql -u 名 -p口令,退回上一个会话敲 exit。
mysql>

重 点

USAGE 那一行是建号时白送的,代表除了登录什么都不能干。

想一想

现在 teacher_a 能查 teaching 库吗?

02
第 8 章 · 上机三

把整个库的查询权给出去

一句 GRANT,teaching 里所有表都能查了。

Welcome to the MySQL monitor. Commands end with ;
Server version: 8.0.36 MySQL Community Server - GPL
提示符写着你现在是谁。换人登录敲 mysql -u 名 -p口令,退回上一个会话敲 exit。
mysql>

重 点

库级那一条记在 mysql.db 里,一行顶这个库里所有的表。

知道更多

以后 teaching 里新建的表,teacher_a 不用再授权也查得到。

03
第 8 章 · 上机三

把范围一步步收窄

字段级只放行点名的那几列。

Welcome to the MySQL monitor. Commands end with ;
Server version: 8.0.36 MySQL Community Server - GPL
提示符写着你现在是谁。换人登录敲 mysql -u 名 -p口令,退回上一个会话敲 exit。
mysql>

重 点

SHOW GRANTS 把同一张表的表级和字段级并成一行打出来。

分清楚两张表分工

记什么
tables_priv整张表的
columns_priv具体哪一列
04
第 8 章 · 上机三

用 teacher_a 登录,挨个试它的边界

能查能改 prof,改别的列和插入都被挡。

Welcome to the MySQL monitor. Commands end with ;
Server version: 8.0.36 MySQL Community Server - GPL
提示符写着你现在是谁。换人登录敲 mysql -u 名 -p口令,退回上一个会话敲 exit。
mysql>

重 点

改 prof 成功,改 tn 报 1143,插入报 1142,两个错误号不一样。

记牢它分清楚

  1. 1142 整张表
  2. 1143 某一列

想一想

为什么 SELECT * 能查出 tn?

05
第 8 章 · 上机三

把最容易写错的三句一次撞完

1410、1064、1144,各错在不同的地方。

Welcome to the MySQL monitor. Commands end with ;
Server version: 8.0.36 MySQL Community Server - GPL
提示符写着你现在是谁。换人登录敲 mysql -u 名 -p口令,退回上一个会话敲 exit。
mysql>

重 点

MySQL 8 不许一边授权一边把用户建出来,先 CREATE USER 再 GRANT。

知道更多

字段级只有 SELECT、INSERT、UPDATE 三种,写 DELETE 直接是语法错。

06
第 8 章 · 上机三

让 teacher_b 有权把权限再给别人

末尾那句 WITH GRANT OPTION 就是转授权的开关。

Welcome to the MySQL monitor. Commands end with ;
Server version: 8.0.36 MySQL Community Server - GPL
提示符写着你现在是谁。换人登录敲 mysql -u 名 -p口令,退回上一个会话敲 exit。
mysql>

重 点

自己有的能转出去,自己没有的转不了,最后一句报 1142。

练一练

teacher_b 能把 teaching.sc 的 SELECT 授给别人吗?
  1. A
  2. B不能,它在 sc 上什么都没有
  3. C看 root 高不高兴
答案 B

转授权只在你自己拿得到的那一份范围里有效。

07
第 8 章 · 上机三

只收点名的那一份

库级收掉了,表级和字段级原封不动。

Welcome to the MySQL monitor. Commands end with ;
Server version: 8.0.36 MySQL Community Server - GPL
提示符写着你现在是谁。换人登录敲 mysql -u 名 -p口令,退回上一个会话敲 exit。
mysql>

重 点

第三句报 1147,本来就没授过这一条,自然收不回。

知道更多

最后那句是一次收干净的写法,只给账号留下 USAGE。

08
第 8 章 · 上机三

从四张表里找出刚才那几句的痕迹

授到哪一级,就在哪张表里留下一行。

Welcome to the MySQL monitor. Commands end with ;
Server version: 8.0.36 MySQL Community Server - GPL
提示符写着你现在是谁。换人登录敲 mysql -u 名 -p口令,退回上一个会话敲 exit。
mysql>

重 点

全局那一级不长新行,它改的是 mysql.user 里那几个 Y 和 N。

想一想

哪一张表现在还是空的?

第 8 章 · 上机三

给一个新人配一套只读权限

建号、授权、实测、回收,四步一气呵成。

Welcome to the MySQL monitor. Commands end with ;
Server version: 8.0.36 MySQL Community Server - GPL
提示符写着你现在是谁。换人登录敲 mysql -u 名 -p口令,退回上一个会话敲 exit。
mysql>

重 点

SELECT * FROM t 报 1142,因为星号要的列里有没授给它的。

知道更多

同一张表上只给了字段级,整表的 SELECT 就是过不去这一关。

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