今天在查询数据库锁表的时候突然报错“动态执行表不可访问,本会话的自动统计被禁止”,点击确定后又提示我相关的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啦