同一台机器上有 scheme A 和 B,A中有表 tb1, tb2,现在要在B中建一视图create view v_a_data as
(
select * from a.tb1, a.tb2
);执行时提示 ora-01031 无权限(我已经给 B DBA权限了)请问该如何实现上述需求???!!

解决方案 »

  1.   

    a下执行
    grant select on tb1 to b;
    grant select on tb2 to b;
      

  2.   


    1、schema A下对B授予表的select 权限:
    grant select on tb1 to b;
    grant select on tb2 to b;
    2、schema B下 建视图:
    create view v_a_data as
    (
    select * from a.tb1, a.tb2
    );
      

  3.   

    创建视图时,视图的所有者必须显式具有视图所引用基表或视图的访问权限,此权限不能通过角色获取。如果要将视图的权限授予其他用户,视图所有者还必须要具有对基对象权限的 GRANT OPTION 或系统权限的 ADMIN OPTION 。
      

  4.   

    grant select on a.tb1 to B
    grant create any view to B