129.A database user SMITH tries to query the V$SESSION view and fails to access it as follows:

129.A database user SMITH tries to query the V$SESSION view and fails to access it as follows:
SQL> connect smith/smith
Connected.
SQL> SELECT * FROM v$session;
SELECT * FROM v$session
*
ERROR at line 1:
ORA-00942: table or view does not exist


Which are the two possible solutions to enable SMITH to query the data in V$SESSION? (Choose two.)
A.granting SELECT privilege to SMITH on V$SESSION
B.granting SELECT privilege to SMITH on V_$SESSION
C.asking the user SMITH to run the catalog.sql script
D.granting SELECT privilege to SMITH on V$FIXED_TABLES
E.setting the O7_DICTIONARY_ACCESSIBILITY parameter to TRUE
F.creating a view based on V$SESSION and granting SELECT privilege to SMITH on the view that was created
答案:BF
解析:
我们先看下v$session是啥
SQL> select * from dict where table_name='V$SESSION'
TABLE_NAME COMMENTS
---------- ------------------------------
V$SESSION  Synonym for V_$SESSION


SQL> select owner,object_name,object_type from dba_objects where object_name='V$SESSION'
OWNER      OBJECT_NAM OBJECT_TYPE
---------- ---------- -------------------
PUBLIC     V$SESSION  SYNONYM


SQL> select dbms_metadata.get_ddl('SYNONYM','V$SESSION','PUBLIC') from dual;
DBMS_METADATA.GET_DDL('SYNONYM','V$SESSION','PUBLIC')
--------------------------------------------------------------------------------
  CREATE OR REPLACE PUBLIC SYNONYM "V$SESSION" FOR "SYS"."V_$SESSION"
--这里我们测试一下,看是否由一个同义词的select权限而没有对应的原始对象的权限是否可以
SQL> conn scott/tiger 
Connected.
SQL> select * from dept; --这里是scott用户下具有dept表


    DEPTNO DNAME          LOC
---------- -------------- -------------
        10 ACCOUNTING     NEW YORK
        20 RESEARCH       DALLAS
        30 SALES          CHICAGO
        40 OPERATIONS     BOSTON
SQL> conn hr/hr
Connected.
SQL> select * from scott.dept; --这里hr不具有访问scott中dept的权限
select * from scott.dept
                    *
ERROR at line 1:
ORA-00942: table or view does not exist 
SQL> conn scott/tiger
Connected.
SQL> create public synonym sdept for scott.dept; --创建一个public的synonym


Synonym created.


SQL> select * from sdept; --创建成功


    DEPTNO DNAME          LOC
---------- -------------- -------------
        10 ACCOUNTING     NEW YORK
        20 RESEARCH       DALLAS
        30 SALES          CHICAGO
        40 OPERATIONS     BOSTON        
SQL> conn / as sysdba
Connected.
SQL> select * from sdept;  --sys可以访问


    DEPTNO DNAME          LOC
---------- -------------- -------------
        10 ACCOUNTING     NEW YORK
        20 RESEARCH       DALLAS
        30 SALES          CHICAGO
        40 OPERATIONS     BOSTON


SQL> conn hr/hr
Connected.
SQL> select * from sdept; --hr还是不行
select * from sdept
              *
ERROR at line 1:
ORA-00942: table or view does not exist


SQL> conn scott/tiger
Connected.
SQL> grant select on dept to hr;


Grant succeeded.


SQL> conn hr/hr
Connected.
SQL> select * from sdept;


    DEPTNO DNAME          LOC
---------- -------------- -------------
        10 ACCOUNTING     NEW YORK
        20 RESEARCH       DALLAS
        30 SALES          CHICAGO
        40 OPERATIONS     BOSTON 
我们在测试一下视图
SQL> revoke select on dept from hr;


Revoke succeeded.


SQL> create view vdept as select * from dept;


View created.
SQL> grant select on vdept to hr;


Grant succeeded.


SQL> conn hr/hr
Connected.
SQL> select * from scott.dept;
select * from scott.dept
                    *
ERROR at line 1:
ORA-00942: table or view does not exist




SQL> select * from scott.vdept;


    DEPTNO DNAME          LOC
---------- -------------- -------------
        10 ACCOUNTING     NEW YORK
        20 RESEARCH       DALLAS
        30 SALES          CHICAGO
        40 OPERATIONS     BOSTON
因此:具有视图的select,不需要对原始的对象具有select,而同义词则不可以 AC正确       
通过运行catalog.sql可以创建数据字典C错误
O7_DICTIONARY_ACCESSIBILITY还需要select any table因此E错误
V$FIXED_TABLES只是一个动态性能视图,因此D错误
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值