PLSQL报错“动态执行表不可访问,本会话的自动统计被禁止”的解决方法

今天在查询数据库锁表的时候突然报错“动态执行表不可访问,本会话的自动统计被禁止”,点击确定后又提示我相关的v$视图不存在,一个个问题来解决。

“动态执行表不可访问,本会话的自动统计被禁止”

出错原因可能是动态性能表相关的权限没有授权给该用户

解决方法一

在菜单中选择“工具”-->“首选项”-->“选项”-->“自动统计”,把自动统计前面的√去掉
试了之后发现仍然报这个错,开始尝试第二种方法↓

解决方法二

将V_$session、v_$sesstat、V_$statname授权给你的用户

grant select on v_$session to 你的用户名;
grant select on v_$sesstat to 你的用户名;
grant select on v_$statname to 你的用户名;

如果需要给所有用户授权,可以尝试

grant select on v_$session to public;
grant select on v_$sesstat to public;
grant select on v_$statname to public;

相关的v$视图不存在

用户没有相关的查询权限导致的

这是查询锁表时用到的SQL语句

select object_name,machine,s.sid,s.serial#
from v$locked_object l,dba_objects o ,v$session s
where l.object_id = o.object_id and l.session_id=s.sid; --查询锁表

执行的时候提示我dba_objects表不存在,v$locked_object试图不存在,把对应的授权给当前用户后,就OK啦

posted @ 2020-09-02 09:29  晓天的BigWorld  阅读(1617)  评论(0编辑  收藏  举报