具体情况是这样的:
我在oracle中有一个普通用户(normal)的的用户帐号,可以创建表,对表进行删除修改
但是在我创建视图的时候提示 权限不够
当然,如果我创建的视图中所用的表是自己创建的话,是可以创建成功的
但是如果我创建的视图中所用的表是别的用户所创建的话,就创建不了,提示权限不够
我使用的是pl/sql dev
请问大家这个问题该怎么解决.

解决方案 »

  1.   

    假如创建视图用到别的用户的表,若自己的用户名为myusr,别的用户名为otherusr,要对otherusr下的表othertab创建视图,那么要以下两个权限,
    1、对象权限
       连接到otherusr,执行grant select on othertab to myusr;
    2、系统权限
       连接到system或sys,执行grant create view to myusr;
    这样myusr下就可以对otherusr.othertab创建视图了。
      

  2.   


    连接到otherusr 是怎么操作? 是指用otherusr的用户名来登录么? 请问是不是需要SYSDBA来执赋权限?grant select on othertab to myusr;这里othertab 是什么意思?我需要把别的用户的表明全部指定出来?那么别的用户好多表,我可能都要用到,那我不是要运行好多个此语句?
      

  3.   


    可能是由于你没有另外对象的访问权限。你可以直接通过select * from otherusername.tablename; 这样的形式来访问不是你创建的表么,如果不行,你这个view当然是不能创建成功的。以那个建表的用户登录进行,把你需要查看的表的权限grant给你就可以了grant select on tablename to username;