请问各位大侠:我在Oracle10g中,自己建立的用户,存储过程里面调用访问动态性能视图,说没有权限。授与什么权限能访问呢?我给了SELECT_CATALOG_ROLE 和SELECT ANY TABLE 权限都不行。

解决方案 »

  1.   

    看是什么动态性能视图,有些需要DBA的权限,当然一般来讲,可以这样试试
    grant select on tablename to user_name;
      

  2.   

    具体情况你可以在
    “Oracle Database Reference 10g Release 1(10.1) Part Number B10755-01”第四章中查看。
      

  3.   

    如:我的例子是这个
    create or replace function Test8 return varchar2 is
      Result   varchar2(8);
      p_nCount number;
    begin
      select count(*) into p_nCount from v$instance;
      dbms_output.put_line(to_char(p_nCount));
      return(Result);
    end Test8;
    err:
    5/3      PL/SQL: SQL Statement ignored
    5/38     PL/SQL: ORA-00942: 表或视图不存在
      

  4.   

    grant select on v_$session to user_name;
    grant select on v_$sesstat to user_name;
      

  5.   

    解决了。
    动态视图需要as dba的的用户授权,而且是V_$的表或视图。
    呵呵。
    谢谢大家帮助啊!!!!!!!!!!!