有疑问可以去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. C#数字图像处理的3种方法

    本文主要通过彩色图象灰度化来介绍C#处理数字图像的3种方法,Bitmap类.BitmapData类和Graphics类是C#处理图像的的3个重要的类. Bitmap只要用于处理由像素数据定义的图像的对 ...

  2. logisticregression

    from numpy import * import random import time st = time.time() def loaddata(filename): fr = open(''. ...

  3. MSP430单片机的中断

    这篇文章是从网上转载过来的,原文章地址:http://www.21ic.com/jichuzhishi/mcu/questions/2012-12-21/154794.html 中断是MSP430微处 ...

  4. v8 源码获取与build

    最近准备在工作之余研究下v8,下班时间鼓捣了2天,现在终于能下载,能gclient sync了. 刚开始的目的就是跑一个hello world,按照wiki上的例子来: https://github. ...

  5. ural 1126 Magnetic Storms

    http://acm.timus.ru/problem.aspx?space=1&num=1126 #include <cstdio> #include <cstring&g ...

  6. JAVA多态示例

    这多态,我觉得是最利害的.在开发大型程序中. 但,也是需要经过足够多的实践经验才能随心利用的. class Quadrangle{ private Quadrangle[] qtest = new Q ...

  7. AndroidManifest.xml 文件里面的内容介绍

    <?xml version="1.0" encoding="utf-8"?> <!--package 包表示整个java应用程序的主要包名,而 ...

  8. C# 创建Excel并写入内容

            1 增加应用      Microsoft.Office.Interop.Excel         2 引用命名空间  using Excel = Microsoft.Office. ...

  9. 1.Basic Structure

    配置: rsyslogd 配置通过rsyslog.conf file,典型的在/etc下.默认的, rsyslogd 读取/etc/rsyslog.conf 文件,这个可以通过命令行选项改变 注意 配 ...

  10. GF(2^8)乘法

    最近在学AES,实现了一下伽罗瓦域(2^8)乘法. 至于什么是伽罗瓦域解释起来比较复杂,我也不一定能解释清楚,自行google.这里只是给出一个简单直观的实现. #include<iostrea ...