PLSQL 打开时出现 动态执行表不可访问 本会话的自动统计被禁止

发布于 2017-07-29  188 次阅读


第一种处理方法(不推荐)

就是在报错的Error对话框中将“Don't show this message again”选项选中,下次就不在提示这个错误了。

这种方法应该可以叫做“鸵鸟方式”的处理方法。没有从根本上解决这个问题。

第二种处理方法

报错信息中描述的非常详细,原因是动态性能表没有权利被访问导致的问题,因此,我们通过把所需访问权限赋予给具体用户的方法来解决这个问题。

这里给出我能想到的三种具体处理方法。大家可以继续补充。

  1. 如果只是某一具体用户有权限查询这三个动态性能视图,可以如下进行操作

这里注意一下:我们授权的视图是V_$session不是V$session,因为V$session是同名不是具体的视图。否则您会收到下面这个错误。

sys@ora10g> grant select on V$session to user_sec;

grant select on V$session to user_sec

*

ERROR at line 1:

ORA-02030: can only select from fixed tables/views

正确的授权方法如下:

SQL> grant select on V_$session to user_sec;

SQL> grant select on V_$sesstat to user_sec;

SQL> grant select on V_$statname to user_sec;
  1. 可以使用下面这个“简单粗暴”的方法处理之。
    SQL> grant SELECT ANY DICTIONARY to user_sec;
    
  2. 以上两种方法是针对特定用户的处理方法,如果想让所有用户(不局限在上面的usersec用户)都能够查询这三个动态性能视图,可以通过将查询权限授权给public方法来实现,操作如下。这样就可以保证所有开发人员都不会再出现上述的报错信息了。 ``` SQL> grant select on V$session to public;

SQL> grant select on V_$sesstat to public;

SQL> grant select on V_$statname to public; ``` 3.第三种方法(推荐)

彻底禁掉PL/SQL Developer的这个功能。

方法如下:

导航到Tools(工具) --> Preferences(首选项) --> Options(选项)

找到“Automatic Statistics(自动统计)”选项,将其前面的小对勾去掉,然后点击“Apply”和“OK”保存退出。

PL\SQL 打开时出现"动态执行表不可访问,本会话的自动统计被禁止"


梦想还是要有的,万一实现了呢