在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$视图的直接授权。
至此,问题得以解决:
哈哈,搞定。。。