我使用system登陆创建一个存储过程,其中涉及sys的视图dba_users:select username,password from dba_users
编译时出错,说表或视图不存在。后来用sys登陆可以创建,但是我编写的ADO连接oracle的连接字符串加不上“as sysdba”,求助高手,帮忙解决下!

解决方案 »

  1.   

    第一、任何用户级对象都不应该建立在system或者sys schema下。
    第二、在pl/sql块(过程、函数、包属于命名块)中调用的对象都必须显式授权,通过role授权是无效的。所以解决方案是,用sys登陆,然后执行
    grant select on dba_users to MYUSER;
    MYUSER是你的用户名,不要用system。
      

  2.   

    system默认好像也可以查询dba_users视图的吧如果你的不行的话就以SYS登陆 
    进行显示进行授权
    grant select on select on dba_users to system;
      

  3.   

    建议一般操作不要使用system账号,自己建立个账号,把该赋的权限给赋上即可