oracle在存储过程中无法查询 v$session、v$process表的解决办法

oracle在存储过程中无法查询 v$session、v$process


1、问题描述:

在非系统用户底下,使用存储过程执行select count(1) from v$process,对数据库进程数进行监控报警,测试时提示错误:"表和视图不存在"


2、问题分析:

axj_user用户赋予dba权限了,按道理可以访问任何一个系统视图,包括v$process,但是存储过程里无法访问,原因是在oracle 9版本中已经规定在初始化参数O7_DICTIONARY_ACCESSIBILITY取缺省值(false)的情况下,一个用户即使有select any table的权限,却还是不能访问sys对象的。


3、问题处理:

(1)使用grant select on v_$process to axj_user;直接把查询该表的权限赋予给axj_user用户
(2)把O7_DICTIONARY_ACCESSIBILITY参数改为true

你可能感兴趣的:(oracle,数据库运维问题汇总)