PL\SQL 打開時出現"動態執行表不可訪問,本會話的自動統計被禁止

這個報錯信息在不同的PL/SQL Developer版本都會出現,從上面詳細的報錯提示信息中我們可以判斷得到,報錯原因不在工具本身。

在此,詳細記錄一下這個小問題的三種處理方法。

1.第一種處理方法(不推薦)

就是在報錯的Error對話框中將“Don't show this message again”選項選中,下次就不在提示這個錯誤了。

這種方法應該可以叫做“鴕鳥方式”的處理方法。沒有從根本上解決這個問題。

2.第二種處理方法(可以採納)

報錯信息中描述的非常詳細,原因是動態性能表沒有權利被訪問導致的問題,因此,我們通過把所需訪問權限賦予給具體用戶的方法來解決這個問題。

這裏給出我能想到的三種具體處理方法。大家可以繼續補充。

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;

2)可以使用下面這個“簡單粗暴”的方法處理之。

SQL> grant SELECT ANY DICTIONARY to user_sec;

3)以上兩種方法是針對特定用戶的處理方法,如果想讓所有用戶(不侷限在上面的user_sec用戶)都能夠查詢這三個動態性能視圖,可以通過將查詢權限授權給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”保存退出。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章