有疑问可以去itpub讨论:http://www.itpub.net/thread-1804842-1-1.html

按题意,操作如下:

1、创建一个角色r1

sys@OCM> create role r1;

Role created.

2、角色r1可以查询和插入oe用户下的orders表

sys@OCM> grant select,insert on oe.orders to r1;

Grant succeeded.

3、把r1拥有的所有全权授权给scott用户

sys@OCM> grant r1 to scott;

Grant succeeded.

4、授予scott用户可以查oe用户下的orders表的权限

sys@OCM> grant select on oe.orders to scott;

Grant succeeded.

5、回收查oe用户下的orders表的权限

sys@OCM> revoke select on oe.orders from scott;

Revoke succeeded.

6、scott用户登录询查oe用户下的orders表

sys@OCM> conn scott/scott

Connected.scott@OCM> select * from oe.orders;

ORDER_IDORDER_DATE                                                                 ORDER_MO CUSTOMER_ID ORDER_STATUS ORDER_TOTAL SALES_REP_ID PROMOTION_ID

--------------------------------------------------------------------------------------------- ----------- ------------ ----------- ------------ ------------

245817-AUG-07 05.34.12.234359 AM                                               direct           101            0     78279.6            153

239720-NOV-07 06.41.54.696211 AM                                                direct           102            1     42283.2            154

direct           105            2 7826          155

。。。。。。。。。。。省略。。。。。。。。。。。。。。。。。。。

245118-DEC-07 09.03.52.562632 AM                                                direct           148            7     10474.6            154

direct           117            0      3878.4            163

245701-NOV-07 01.22.16.162632 PM                                               direct           118            5     21586.2            159

105 rows selected.

用revoke命令回收了scott用户查oe用户下的orders表,但

Scott用户还是可以查出oe用户中的orders表记录。这是什么回事呢?

我们先来看角色r1的对象权限:

sys@OCM> select * from dba_tab_privs where grantee='R1';

GRANTEE                        OWNER                          TABLE_NAME                     GRANTOR                 PRIVILEGE                                 GRA HIE

------------------------------------------------------------ ------------------------------------------------------------ ---------------------------------------- --- ---

R1                             OE                             ORDERS                         OE                      SELECT                                    NO  NO

R1                             OE                             ORDERS                         OE                      INSERT                                    NO  NO

说明R1角色拥用对oe用户下对orders表的查询和插入操作的权限。。。

查SCOTT用户所拥用的角色:

sys@OCM> select * from DBA_ROLE_PRIVS whereGRANTEE='SCOTT';

GRANTEE                        GRANTED_ROLE                   ADM DEF

------------------------------------------------------------ --- ---

SCOTT                          RESOURCE                       NO  YES

SCOTT                          R1                             NO  YES

SCOTT                          CONNECT                        NO  YES

可以看出SCOTT拥有R1角色,所以有查oe用户下orders表的权限。

如果回收scott用户下的R1角色,应该就能查oe用户下orders表的权限。

sys@OCM> revoke r1 from scott;

Revoke succeeded.

sys@OCM> conn scott/scott

Connected.

scott@OCM> select * from oe.orders;

select * from oe.orders

*

ERROR at line 1:

ORA-00942: table or view does not exist

这道题目是考用户的权限,角色和对象权限的分配及回收知识点。

参考:http://blog.csdn.net/guoyjoe/article/details/863593

希望大家一起补充知识点,找出每道题目的知识点,一起挖掘,分析,吃透。。。

正确答案是:A

[每日一题] OCP1z0-047 :2013-07-25 权限――角色与对象权限的更多相关文章

  1. CISP/CISA 每日一题 九(2017-11-30 09:25)

    电子银行风险管理责任: 1.风险管理是董事会和高级管理层的责任 2.实施技术是信息技术高级管理层的责任 3.测量和监控风险是经营管理层的责任     管理层在实施一个新的电子银行应用程序之前要 ___ ...

  2. 老男孩IT教育-每日一题汇总

    老男孩IT教育-每日一题汇总 第几天 第几周 日期 快速访问链接 第123天 第二十五周 2017年8月25日 出现Swap file….already exists以下错误如何解决? 第122天 2 ...

  3. 【JavaScript】【dp】Leetcode每日一题-解码方法

    [JavaScript]Leetcode每日一题-解码方法 [题目描述] 一条包含字母 A-Z 的消息通过以下映射进行了 编码 : 'A' -> 1 'B' -> 2 ... 'Z' -& ...

  4. 【Java每日一题】20170106

    20170105问题解析请点击今日问题下方的"[Java每日一题]20170106"查看(问题解析在公众号首发,公众号ID:weknow619) package Jan2017; ...

  5. 【Java每日一题】20170105

    20170104问题解析请点击今日问题下方的"[Java每日一题]20170105"查看(问题解析在公众号首发,公众号ID:weknow619) package Jan2017; ...

  6. 【Java每日一题】20170104

    20170103问题解析请点击今日问题下方的"[Java每日一题]20170104"查看(问题解析在公众号首发,公众号ID:weknow619) package Jan2017; ...

  7. 【Java每日一题】20170103

    20161230问题解析请点击今日问题下方的"[Java每日一题]20170103"查看(问题解析在公众号首发,公众号ID:weknow619) package Jan2017; ...

  8. 【Java每日一题】20161230

    // 20161229问题解析请点击今日问题下方的"[Java每日一题]20161230"查看(问题解析在公众号首发,公众号ID:weknow619)package Dec2016 ...

  9. 【Java每日一题】20161229

    package Dec2016; import java.util.ArrayList; import java.util.List; public class Ques1229 { public s ...

随机推荐

  1. Razor视图引擎

    在MVC3.0版本的时候,微软终于引入了第二种模板引擎:Razor.在这之前,我们一直在使用WebForm时代沿留下来的ASPX引擎或者第三方的NVelocity模板引擎. (1)Razor文件类型: ...

  2. swift和 oc 混编2-备

    在Swift语言出现之前,开发iOS或OS X应用主要使用Objective-C语言,此外还可以使用C和C++语言,但是UI部分只能使用Objective-C语言. 选择语言 Swift语言出现后,苹 ...

  3. Swift—使用try?和try!区别-备

    在使用try进行错误处理的时候,经常会看到try后面跟有问号(?)或感叹号(!),他们有什么区别呢? 1.使用try?  try?会将错误转换为可选值,当调用try?+函数或方法语句时候,如果函数或方 ...

  4. Facebook 正式开源其大数据查询引擎 Presto

    Facebook 正式宣布开源 Presto —— 数据查询引擎,可对250PB以上的数据进行快速地交互式分析.该项目始于 2012 年秋季开始开发,目前该项目已经在超过 1000 名 Faceboo ...

  5. VMProtect修复导入表的插件

    壳版本:VMProtect.Ultimate.2.12.3 样本:TKLobby.exe 目的:IAT修复 作者:MrWrong 标题:VMProtect修复导入表的插件 只是感兴趣,没有其他目的.失 ...

  6. 51单片机C语言学习笔记5:include的区别

    #include <iostream.h>#include "myfile_h" #include 是预处理器标识符.<>表示是标准的工程.标准的头文件.查 ...

  7. WebBrowser执行脚本

    ExecuteJavaScript(WebBrowser:TWebBrowser; Code: string):Variant;var //发送脚本Document:IHTMLDocument2;Wi ...

  8. mySql控制流程的函数

    1.select case value then result else value end; 在第一个方案的返回结果中, value=compare-value.而第二个方案的返回结果是第一种情况的 ...

  9. Java ConcurrentHashmap 解析

    总体描述: concurrentHashmap是为了高并发而实现,内部采用分离锁的设计,有效地避开了热点访问.而对于每个分段,ConcurrentHashmap采用final和内存可见修饰符Volat ...

  10. hdu 1331 Function Run Fun

    Problem Description We all love recursion! Don't we? Consider a three-parameter recursive function w ...