V$ 视图和V_$ 同义词

在scott用户模式下要做有关于在对话级别的sql_trace 时,出现以下显示:

SQL> alter session set sql_trace=true;
alter session set sql_trace=true
*
第 1 行出现错误:
ORA-01031: 权限不足
SQL> grant select on v$session to scott;
grant select on v$session to scott
                *
第 1 行出现错误:
ORA-02030: 只能从固定的表/视图查询
查询了资料才知道通常大部分用户访问的v$对象,并不是视图,而是指向v_$视图的同义词,而视图是基于真正的v$视图创建的。在catalog。sql脚本中有:

craete   or  replace  view  v_$fixed_table as select * from  v$fixed_table;

craete   or replace public synonym v$fixed_table for v_$fixed_table ;

craete   or  replace  view  gv_$fixed_table as select * from  gv$fixed_table;

craete   or replace public synonym v$fixed_table for gv_$fixed_table ;

从以上脚本中 v_$和gv_$视图基于视图被创建,然后基于v_$和gv_$视图的同义词被创建。通过v_$视图,oracle把V$视图体会普通用户隔离,V_$视图的权限可以授予其他用户,而oracle不允许对于V$视图的直接授权。

至此,问题得以解决:

V$ 视图和V_$  同义词

哈哈,搞定。。。

V$ 视图和V_$  同义词1.jpg

上一篇:等待事件 二


下一篇:使用 React.js 和应用缓存构建快速同步应用程序