ORA-00942错误一例

普通用户使用PL/SQL Developer进行查询操作报 动态执行表不可访问,本会话的自动统计被禁止,以前经常有这个警告也没放在心上,反正不影响使用,V$SESSION,V$SESSTAT,V$STATNAME没有被授权,没有权限访问这几张表,所以没有办法进行统计。
今天闲来无事,根据提示给用户授与相应视图上的select权限:
SQL> grant select on v$statname to scott;
grant select on v$statname to scott
                *
第 1 行出现错误:
ORA-00942: 表或视图不存在
这就奇怪了,视图明明是存在的呀?
用oerr查看了一下ORA-00942错误
[oracle@localhost ~]$ oerr ora 02030
02030, 00000, "can only select from fixed tables/views"
// *Cause:  An attempt is being made to perform. an operation other than
//         a retrieval from a fixed table/view.
// *Action:  You may only select rows from fixed tables/views.
原来如此:一个操作尝试从不是一个固定表或视图检索数据,你只可以选择行从固定表/视图
在网上一查资料,v$视图是指向v_$视图的同义詞
好吧这样授权:
SQL> grant select on v_$statname to scott;
SQL> grant select on v_$sesstat to scott;
SQL> grant select on v_$session to scott;
 SQL> grant select on v_$mystat to scott;
OK!这样是没问题的
再次使用相应用户执行查询操作就不会报错了
请使用浏览器的分享功能分享到微信等