Skip to content
难度基础(★)
建议时长45分钟

3.7.4 权限控制

本课核心知识点整理
本课核心知识点手绘流程图(SVG)

权限控制考什么

权限控制属于 SQL 的数据控制语言。字幕里说明这一块在软件设计师中考得不多,主要记关键字和语句结构:GRANT 授权,REVOKE 回收权限,WITH GRANT OPTION 表示级联授权能力。

数据库权限控制的目的,是让用户只能在被授权的对象上执行被允许的操作。例如某用户只能查询部门表,不能修改;或只能修改某一列。

授权语句 GRANT

基本形式:

sql
GRANT 权限列表
ON 对象
TO 用户列表
[WITH GRANT OPTION];

例子:授予用户 U1 对部门表 DPTname 列的更新权限,并允许继续授权:

sql
GRANT UPDATE(name)
ON DPT
TO U1
WITH GRANT OPTION;
片段含义
GRANT授予权限
UPDATE(name)授予对 name 列的修改权限
ON DPT权限作用对象是 DPT
TO U1被授权用户是 U1
WITH GRANT OPTIONU1 可以继续把该权限授给别人

权限对象可以是表、视图,也可能细到列。考试通常给出自然语言描述,让你选择正确关键字组合。

回收权限 REVOKE

基本形式:

sql
REVOKE 权限列表
ON 对象
FROM 用户列表;

与授权语句的区别是:授权用 TO,回收用 FROM

sql
REVOKE UPDATE(name)
ON DPT
FROM U1;

字幕还提到 CASCADE:如果权限曾经通过 WITH GRANT OPTION 继续传递给其他用户,级联回收会把被回收者再授权出去的权限一并回收。

sql
REVOKE UPDATE(name)
ON DPT
FROM U1
CASCADE;

易混关键字

关键字所属场景含义
GRANT授权给予权限
REVOKE回收收回权限
TO授权指定被授权用户
FROM回收指定被回收用户
WITH GRANT OPTION授权扩散允许被授权者继续授权
CASCADE级联回收连同下游授权一并回收
WITH CHECK OPTION视图更新约束不是授权级联

字幕中特别提醒,WITH CHECK OPTION 与视图相关,不是权限授权语句;看到“允许继续授权”时,应选 WITH GRANT OPTION

做题路线

  1. 先判断是授权还是回收:授予用 GRANT,收回用 REVOKE
  2. 看权限类型:SELECTINSERTUPDATEDELETE,列级更新可写 UPDATE(列名)
  3. 看对象:用 ON 表名/视图名
  4. 看用户:授权用 TO 用户,回收用 FROM 用户
  5. 看到“允许继续授权”,补 WITH GRANT OPTION;看到“级联回收”,考虑 CASCADE

例题

单选
授予用户某表查询权限,应使用:
单选
允许被授权用户继续把权限授给其他用户,应使用:

自查要点

  1. GRANT 和 REVOKE 分别做什么?
  2. WITH GRANT OPTION 的含义是什么?
  3. 授权语句中 ON 和 TO 分别指定什么?