Oracle: создание представления по схемам? - PullRequest
5 голосов
/ 31 января 2011

Я пытаюсь создать представление и разогнал проблему до невозможности создать представление, которое ссылается на таблицы из другой схемы.

Например, я могу сделать:

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 ]

8 голосов
/ 31 января 2011

Есть ли у вас грант для таблицы другого пользователя напрямую?Или это через роль?Вам понадобится предоставить привилегию напрямую, чтобы создать объект (представление, процедуру и т. Д.), Который ссылается на другую таблицу.В качестве быстрого теста в SQL * Plus

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

Если это не удастся, то проблема в том, что вам предоставлены привилегии для таблицы через роль.

5 голосов
/ 31 января 2011

Полагаю, вам дали право выбора otherschema.othertable через role, а не через grant.

Если это так, вы должны подключиться как otheruser, а затем сделать grant select on othertable to <your-schema>.

1 голос
/ 01 февраля 2011

Я считаю, что ваш администратор БД должен будет предоставить вам

создать любой вид

привилегия. В зависимости от ограничений безопасности на вашем сайте они могут или не могут этого позволить. Я обычно не

...