日期:2014-05-17  浏览次数:20685 次

关于视图权限问题……
先为两个用户创建表,如
user_a   :
create   table   w_tab_a   (   a   number(10),b   number(1));
grant   select   on   w_tab_a   to   user_b;
user_b   :
create   table   w_tab_b   (   a   number(10),b   number(1));
然后以user_b身份登陆oracle,创建视图如:
create   or   replace   view   v_test   as
select   a.*
from   user_a.w_tab_a   a,w_tab_b   b
where   a.a=b.a;

grant   select   on   v_test   to   user_c;

现在以用户user_c登陆oracle,查询如:
select   *   from   user_b.v_test;

出现权限问题,提示为   ORA-01031
尝试过:以user_a登陆,grant   select   on   w_tab_a   to   user_c;
                以user_b登陆,grant   select   on   w_tab_b   to   user_c;
仍然出现同样提示,请教各位,此问题该如何解决?谢谢了

------解决方案--------------------
以user_c查询 user_a.w_tab_a 和user_b.w_tab_b试试
------解决方案--------------------
你并没有给user_c付权限呀,它涉及到的表必须有权限
------解决方案--------------------
是不是还要给它create view 权限?
------解决方案--------------------
为视图建立公共同义词:

create public synonym v_test for user_b.v_test;

然后用户user_b,授权select给user_c。试试