繁体   English   中英

Oracle:跨模式创建视图?

[英]Oracle: Creating view across schemas?

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

例如,我可以这样做:

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;

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

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

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

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

我猜你已经通过一个role而不是通过直接grant了对其otherschema.othertable选择权。

如果是这种情况,您应该以其他用户otheruser连接,然后grant select on othertable to <your-schema>执行grant select on othertable to <your-schema>

我相信你的DBA需要授予你

创建任何视图

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM