SQL基础入门-数据控制语言-Grant与Revoke

本文介绍了SQL中的数据控制语言DCL,重点讲解了Grant和Revoke语句的使用。Grant用于向用户授予特定操作权限,如查询、修改表的权限,并可以设置是否允许用户再次转授权限。Revoke则用于回收已授予用户的权限,可选择级联收回。通过实例展示了Grant和Revoke的基本语法和应用。

SQL九大核心动词分成四种语言,数据定义语言DDL包括动词Create、Drop、Alter;数据操纵语言DML包括动词Insert、Update、Delete;数据控制语言DCL包括动词Grant、Revoke;数据查询语言DQL包括动词select

授权:授予与收回


SQL中使用Grant和Revoke语句向用户授予或收回对数据的操作权限,Grant语句向用户授予权限,Revoke语句收回已经授予用户的权限。

Grant

Grant语句的一般格式:

GRANT <权限>[,<权限>]...
ON <对象类型> <对象名>[,<对象类型> <对象名>]TO <用户>[,<用户>]...
[WITH GRANT OPTION;有这个则用户还可以授权给别人];

其语义为:将对指定操作对象的指定操作权限授予指定的用户;

发出该Grant语句的可以是数据库管理员,也可以是该数据库对象创建者,还可以是已经拥有该权限的用户。接受权限的用户可以是一个或多个具体用户,也可以是PUBLIC,即全体用户;

如果指定了WITH GRANT OPTION子句,则获得某种权限的用户还可以把这种权限再授予其他的用户。如果没有指定WITH GRANT OPTION子句,则获得某种权限的用户只能使用该权限,不能传播该权限;
其中不能循环授权,即被授权者不能把权限再授回给授权者或其祖先。
在这里插入图片描述

eg1:把查询Student表的权限授给用户U1

Grant select
on table student
to U1;

eg2:把对Student表,sc表所有权限授给所有用户

grant all privileges
on table student,sc
to public;

eg3:把修改学生学号的权限给用户U2

Grant update
on table student
to U2
WITH GRANT OPTION

执行此SQL语句后,U2不仅拥有了对表Student修改学生学号的权限,还可以传播此权限,即由U2用户发上述GRANT命令给其他用户。

Revoke

Revoke语句的一般格式为:

REVOKE <权限>[,<权限>]...
ON <对象类型> <对象名>[,<对象类型><对象名>]FROM <用户>[,<用户>]...[CASCADE | RESTRICT];

授予用户的权限可以由数据库管理员或其他授权者用REVOKE语句收回;CASCADE表示级联收回,否则系统拒绝此操作

eg1:把用户U1查询Student表的权限收回

revoke select
on table student
from U1 CASCADE;

U1若将select授予出去,那么CASCADE将U1授予的权限收回。

eg2:收回所有用户对sc表的update操作

revoke update
on table sc
from public;

参考书籍:《数据库系统概论 第五版》王珊等著

希望对你学习有帮助!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值