授权:授予与收回 和 数据库角色
4.2.4 授权:授予与收回
SQL中使用 GRANT和 REVOKE语句向用户授予或收回对数据的操作权限。 GRANT语句向用户授予权限, REVOKE语句收回己经授予用户的权限。
1.GRANT
GRANT语句的一般格式为:
GRANT<权限> [,<权限>]···
ON <对象类型> <对象名>[,<对象类型> <对象名>]···
TO<用户> [,<用户>]···
[WITH GRANT OPTION];
其语义为:将对指定操作对象的指定操作权限授予指定的用户。发出该 GRANT语句的可以是数据库管理员,也可以是该数据库对象创建者(即属主 owner),还可以是已经拥有该权限的用户。接受权限的用户可以是一个或多个具体用户,也可以是 PUBLIC,即全体用户
如果指定了 WITH GRANT OPTION子句则获得某种权限的用户还可以把这种权限再授予其他的用户。如果没有指定 WITH GRANT OPTION子句,则获得某种权限的用户只能使用该权限,不能传播该权限。
SQL标准允许具有 WITH GRANT OPTION的用户把相应权限或其子集传递授予其他用户,但不允许循环授权,即被授权者不能把权限再授回给授权者或其祖先。
例 4.4 把查询STUDENT表和修改学生学号的权限授权给用户U4。
GRANT UPDATE(Sno),SELECT
ON TABLE Student
TO U4;
这里,实际上要授予U4用户的是对基本表 Student的 SELECT权限和对属性列Sno的 UPDATE权限。对属性列授权时必须明确指出相应的属性列名。
例 4.5 把对表SC的 INSERT权限授予U5用户,并允许将此权限再授予其他用户。
GRANT INSERT
ON TABLE SC
TO U5
WITH GRANT OPTION;
执行此SQL语句后,U5不仅拥有了对表SC的 INSERT权限,还可以传播此权限,即由U5用户发上述 GRANT命令给其他用户。例如U5可以将此权限授予U6(例4.6)
例 4.6
GRANT INSERT
ON TABLE SC
TO U6
WITH GRANT OPTION;
同样,U6还可以将此权限授予U7(例 4.7)
例 4.7
GRANT INSERT
ON TABLE SC
TO U7;
因为U6未给U7传播的权限,因此U7不能再传播此权限。
2.REVOKE
授予用户的权限可以由数据库管理员或其他授权者用 REVOKE语句收回, REVOKE语句的一般格式为
REVOKE <权限>[,<权限>]···
ON<对象类型><对象名>[,<对象类型><对象名
FROM<用户> [,<用户> ]··· [CASCADE|RESTRICT ];
例 4.10 把用户U5对SC表的INSERT权限收回。
REVOKE INSERT
ON TABLE SC
FROM U5 CASCADE;
将用户U5的 INSERT权限收回的同时,级联(CASCADE)收回了U6和U7的 INSERT权限,否则系统将拒绝执行该命令。因为在例4.6中,U5将对s表的 INSERT权限授予了U6,而U6又将其授予了U7(例4.7)
注意:这里默认值为CASCADE,有的数据库管理系统默认值为 RESTRICT,将自动执行级联操作。如果U6或U7还从其他用户处获得对C表 INSERT的权限,则他们仍具有此权限,系统只收回直接或间接从U5处获得的权限。
4.2.5 数据库角色
数据库角色是被命名的一组与数据库操作相关的权限,角色是权限的集合。因此,可以为一组具有相同权限的用户创建一个角色,使用角色来管理数据库权限可以简化授权的过程。
在SQL中首先用 CREATE ROLE语句创建角色,然后用 GRANT语句给角色授权,用 REVOKE语句收回授予角色的权限。
例 4.11 通过角色来实现将一组权限授予一个用户。
步骤如下:
(1)首先创建一个角色R1。
CREATE ROLE R1;
(2)然后使用 GRANT语句,使角色R1拥有 Student表的 SELECT、 UPDATE、 INSERT权限。
GRANT SELECT,UPDATE,INSERT
ON TABLE Student
TO R1;
(3)将这个角色授予王平、张明、赵玲,使他们具有角色R1所包含的全部权限。
GRANT R1
TO 王平,张明,赵玲;
(4)当然,也可以一次性地通过R1来收回王平的这三个权限。
REVOKE R1
FROM 王平;
目前只明白怎么授权与收回,但具体让被授权的用户去实现被授权权限还没搞懂,搜也没搜到,这次只好对书上进行回顾,没有结果截图,下次课问问老师。
授权:授予与收回 和 数据库角色相关推荐
- 授权:授予与收回 以及 数据库角色、视图机制
授权:授予与收回 以及 数据库角色 一.授权 1.授予 2.收回 二.数据库角色 1.角色的创建 2.给角色授权 3.将一个角色授予其他的角色或用户 4.角色权限的收回 三.视图机制 一.授权 SQL ...
- mysql全备和指定库和表备份,mysql日志的分类简介和作用, mysql加速跳过域名解析,mysql权限授予与收回,数据库实用篇~~Tring
mysql改密,重置,备份,权限和日志 改密~ 修改密码 重置密码 步骤 数据库备份 用到的命令: 可加参数 : -A 参数 例子: -B 参数 例子: 备份指定数据库的某个表 恢复表 创建用户 操作 ...
- SQL Server 数据库实验课第七周——授权:授予与收回
目录 4.2.3 自主存取控制方法 4.2.4 授权:授予与收回 1.GRANT 2.REVOKE 4.2.5 数据库角色 4.2.3 自主存取控制方法 通过 SQL 的GRANT 语句和REVOKE ...
- 数据库作业8:SQL Server 的部分操作(授权:授予与收回)
第四章 数据库安全性 4.2数据库安全性控制 三.自主存取控制方法 四.授权:授予与收回 1.GRANT 2.REVOKE 五.数据库角色 1.角色的创建 2.给角色授权 3.将一个角色授予其他的角色 ...
- 计算机三级数据库安全管理(一)、授权语句、WITH GRANT OPTION、guest、用户定义的数据库角色、Oracle安全管理、收权语句、安全管理、数据库用户、角色、用户分类、GRANT
1.设某数据库中有表T1(c1,c2, c3),并只对U1执行了如下授权语句: GRANT SELECT ON T1 TO U1 下列语句中,U1无权执行的是 A.SELECT *FROM T1 B. ...
- Oracle数据库用户管理之二---权限授权去权(用户和角色)
Oracle数据库用户管理之二---权限授权去权(用户和角色) 书接上回,https://blog.csdn.net/alwaysbefine/ ...
- 数据库 - 数据库角色
数据库角色 数据库角色:被命名的一组与数据库操作相关的权限 角色是权限的集合 可以为一组具有相同权限的用户创建一个角色 简化授权的过程 一.角色的创建 CREATE ROLE <角色名> ...
- SQL Server中通用数据库角色权限的处理详解
SQL Server中通用数据库角色权限的处理详解 前言 安全性是所有数据库管理系统的一个重要特征.理解安全性问题是理解数据库管理系统安全性机制的前提. 最近和同事在做数据库权限清理的事情,主要是删除 ...
- oracle数据库的访问控制,数据库角色访问控制
基于角色的访问控制 (Role-based access control, RBAC) 是一种安全功能,用于控制用户对通常仅限于超级用户的任务的访问.通过对进程和用户应用安全属性,RBAC 可以向多个 ...
最新文章
- UICollectionView的基本使用(1)
- 这里有一个3天的秘境邀请!
- Oracle技术之和分区表相关的一点总结(四)
- Cisco路由器密码恢复方法
- python 求list最小值的索引_【挑战自学Python编程】第六天:前五天都学了啥?
- 汇编语言 明明定义了栈仍然no stack segment 以及栈空间数据被篡改问题
- Java 将excel中的内容导入数据库中
- 事务例子_图文详解:数据库事务与锁
- Synology DS213J 群晖NAS git server架设方法!
- Android系统模块编译
- leetcode—8.同向双指针—滑动窗口题型python解答
- 25. object类中的一些方法分析
- 最短路径算法之四——SPFA算法
- 黑莓刷机及情景设置来电和短信等没有声音的解决办法
- linux查看本机ip地址
- 英语12种记忆单词的方法
- 使用facebook账号登录
- 挑战SQL经典题(一)
- 四大蓝牙天线设计方式
- 手机点餐APP开发需求分析
热门文章
- java y z x_表示关系 X=Y=Z 的 JAVA 语言表达式为_机械工程材料及热处理答案_学小易找答案...
- 项目管理之从战略层出发完善组织架构管理
- 东南大学新增人工智能学硕!计算机科学与工程学院
- 少儿编程里java_Greenfoot【java学习】-方法
- 实现打印当前路径下所有文件名的命令_Linux 命令(二)
- 《字字带泪——写在三十岁到来这一天》 By 王潇
- cocos2dx:addAnimation如何创建精灵动画并在工程中调用展示
- Python笔记:布尔类型,逻辑运算符
- IMU惯性测量单元之陀螺仪综述
- 计算机组成原理 扩展指令的操作码,【计算机组成原理】指令系统