开发者

Oracle: Creating view across schemas?

I'm trying to create a view, and have distilled the problem down to the inability to create a view that references tables from a different schema.

For example, I can do:

select count(*) from 开发者_运维技巧otherschema.othertable;

and I can do:

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

But if I try:

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

I get an "insufficient privileges" error. What additional privileges do I need?


Do you have the grant to the other user's table directly? Or is it via a role? You will need the privilege to be granted directly in order to create an object (view, procedure, etc.) that references the other table. As a quick test, in SQL*Plus

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

If that fails, then the problem is that you have been granted privileges on the table via a role.


I guess you have been given select right on otherschema.othertable via a role not via a direct grant.

If this is the case, you should connect as otheruser and then do a grant select on othertable to <your-schema>.


I believe that your DBA will need to grant you

create any view

privilege. Depending on the security restrictions at your site they may or not allow this. I typically do not

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜