Autotrace的权限

今天使用一般的用户用autotrace做一个简单的查询,好给网友朋友一个很简单的执行计划的结果看看,

结果还出现问题了


问题如下
SQL> set autotr on;
SP2-0613: Unable to verify PLAN_TABLE format or existence
SP2-0611: Error enabling EXPLAIN report
SP2-0618: Cannot find the Session Identifier. Check PLUSTRACE role is enabled
SP2-0611: Error enabling STATISTICS report

 

出现问题,呵呵呵,终于等到错误解决了,好多天都遇不到问题呢,始终还是那句话,人只有吃过亏了,才能记的住东西。
现在不就是一个很到的给我记东西的机会么

 

有些网友朋友,特别怕遇到问题,所以一有问题,马上求助于他人,这是一个不好的习惯,至少我们先要看看错误是什么样吧,


所以看到问题不怕,先看清楚问题的提示。


这里提示
SP2-0613: Unable to verify PLAN_TABLE format or existence
SP2-0611: Error enabling EXPLAIN report


这里的意思还是很清楚的,plan_table这个不能verify到format或者是否存在。不能够用explain report

 

SP2-0618: Cannot find the Session Identifier. Check PLUSTRACE role is enabled
SP2-0611: Error enabling STATISTICS report


这个呢,也很清楚 plustrace这个role不能用。

下面一个觉得软一些,先开始吧。plustrace不能用,马上就查查role的状态哟。


SQL> desc dba_roles;
Name Type Nullable Default Comments
—————– ———— ——– ——- ——————————————————-
ROLE VARCHAR2(30) Role Name
PASSWORD_REQUIRED VARCHAR2(8) Y Indicates if the role requires a password to be enabled

SQL> select * from dba_roles where role = ‘PLUSTRACE’;
no rows selected

 

哦,都还没有这个role创建。如果autotrace需要这个role的权限了,没有的话就创建哟。不过,这个估计是系统带的role,可能是我还没有安装相关的sql文件吧。 安装他吧。

 

马上有一个问题来了,怎么安装了,可以g一把,也可以土发,用file search了。一般安装的脚本在rdbms下,搜索一下,有一个文件demo/nlsdemo0.sql有这个role的匹配,不过看名字就不是了,换个整个目录搜搜,在sqlplus下找到一个plustrce.sql的文件,打开看看,有些像。执行一把吧


SQL>conn / as sysdba
SQL>@ ?/sqlplus/admin/plustrce.sql

看着执行的消息就知道role已经OK了。

 

马上附上权限看看。


SQL>grant plustrace to test1;
搞定这个了。


试试test1现在行不行


SQL>conn test1/test1;
SQL>set autotr on;
SP2-0613: Unable to verify PLAN_TABLE format or existence
SP2-0611: Error enabling EXPLAIN report


刚刚的4个错误变两个了。
SQL>select name from user_tables;


出来统计报告了,
不过执行计划还没有出来。

继续解决上面两个问题。


查询有没有plan_table这个表


SQL> select * from dba_tables where table_name = ‘PLAN_TABLE’;
SYS PLAN_TABLE SYSTEM

 

怀疑是可能不能直接访问PLAN_TABLE的表,加上同义词


SQL>create public synonym plan_table for plan_table;
SQL>grant all on plan_table to public;

 

切换到test1下,

 

SQL>conn test1/test1
SQL>set autotr on;


没有问题了,


执行一下自己的表,

SQL>select * from t1;

no rows selected

Execution Plan
———————————————————-
0 SELECT STATEMENT Optimizer=CHOOSE
1 0 TABLE ACCESS (FULL) OF ‘T1′

Statistics
———————————————————-
133 recursive calls
0 db block gets
18 consistent gets
2 physical reads
60 redo size
270 bytes sent via SQL*Net to client
372 bytes received via SQL*Net from client
1 SQL*Net roundtrips to/from client
2 sorts (memory)
0 sorts (disk)
0 rows processed

 

看这个结果就知道,一切都已经搞定了。

 

不过还是有些很纳闷的地方。

 

当我访问all_tables的时候或者user_tables的时候,这里会有


ERROR:
ORA-01039: insufficient privileges on underlying objects of the views
SP2-0612: Error generating AUTOTRACE EXPLAIN report


这样的错误出现,

琢磨了好久,还是没有能够解决,在网上查了查,也有几个类似的情况出现。不过其中
的解释不足以有说服力

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

inthirties

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值