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
从题中错误看出,SMITH 用户没有访问数据字典 v$session 的权限,两种解决方法,一是给他访问 v$session 的权限,二是在 v$session 建立视图,并授权让 SMITH 可以查看。
V$SESSION是APPS用户下面对于SYS.V_$SESSION 视图的同义词。
1、授予SELECT ANY DICTIONARY权限(对所有字典表和视图);
2、授予该用户select on sys.v_$session权限,并使用有权限用户对v$session创建公共同义词(如授予public select on sys.v_$session权限,则是对所有用户);
3、授予select on sys.v_$session权限,并在该用户下创建对sys.v_$session的私有同义词(对该用户,也对该视图)。
v$session 是 v_$session 的别名