Oracle:跨模式创建视图?

时间:2011-01-31 19:55:57

标签: oracle view schema

我正在尝试创建一个视图,并将问题提炼到无法创建引用来自不同模式的表的视图。

例如,我可以这样做:

select count(*) from otherschema.othertable;

我能做到:

create view foo as select count(*) as bar from oneofmytables;

但如果我尝试:

create view foo as select count(*) as bar from otherschema.othertable;

我收到“权限不足”错误。我需要什么额外的特权?

3 个答案:

答案 0 :(得分:8)

您是否直接授予其他用户的表格?还是通过一个角色?您需要直接授予权限才能创建引用其他表的对象(视图,过程等)。作为快速测试,在SQL * Plus中

SQL> set role none;
SQL> select count(*) from otherschema.othertable;

如果失败,那么问题是您已通过角色授予了对表的权限。

答案 1 :(得分:5)

我猜你已经otherschema.othertable通过role而不是通过直接grant向右选择。

如果是这种情况,您应该以{{1​​}}身份连接,然后执行otheruser

答案 2 :(得分:1)

我相信您的DBA需要授予您

  

创建任何视图

特权。根据您网站的安全限制,他们可能会或不会允许这样做。我通常不会