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

У меня есть представление V1 в схеме A. И я хочу выбрать его из схемы B. Представление V1 включает системные словари (dba_objects, sys. $ Views и другие).

Теперь я предоставил привилегии по запросу своему администратору.

grant select on dba_objects to A
grant select on sys.$views to A
grant select on dba_objects to B
grant select on sys.$views to B
grant select on A.V1 to B

Но есть ошибка: недостаточные привилегии Я понимаю, что нужна опция: с опцией предоставления

grant select on dba_objects to A with grant option
grant select on sys.$views to A with grant option

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

Спасибо!


person Алексей Байдин    schedule 16.01.2018    source источник
comment
В самом конце вы упоминаете with admin option - не совсем то же самое, что with grant option. Затем - если я правильно понимаю, проблема в том, что вы, владелец схемы A, не можете предоставить права доступа к объектам словаря данных для B. Это нормально - попросите администратора базы данных предоставить эти привилегии непосредственно B. делать свою работу, выбирая с вашей точки зрения, это не должно быть проблемой.   -  person mathguy    schedule 16.01.2018
comment
Если я правильно понимаю, вы предлагаете запросить следующие гранты: предоставить select на dba_objects на B грант select на sys. $ Views на B Но это не помогает.   -  person Алексей Байдин    schedule 16.01.2018
comment
Я не могу найти, что это не помогает в документации Oracle. Не могли бы вы объяснить, что это значит? Ваш администратор базы данных уже предоставил эти привилегии B? Что произошло дальше? Не помогает, не помогает!   -  person mathguy    schedule 16.01.2018
comment
Да, это гранты. Та же ошибка - недостаточные привилегии. Запрос от user_tab_privs: drive.google.com/open?id=1NSU_f_E7 а>   -  person Алексей Байдин    schedule 16.01.2018


Ответы (1)


Для объектов словаря используйте комбинацию create view и public synonym в sys, а затем вы можете использовать ее в любой обычной схеме:

SQL> create or replace view v_objects as select * from dba_objects;
SQL> create or replace synonym v_objects2 for v_objects;
SQL> grant select on v_objects2 to A with grant option;
SQL> conn A/pwdA
SQL> create or replace view v_objectsA as select * from sys.v_objects2;
SQL> conn B/pwdB
SQL> create or replace view v_objectsB as select * from sys.v_objects2;
person Barbaros Özhan    schedule 16.01.2018
comment
Я сделал следующее (без общедоступных): создать или заменить view v_objects как select * from dba_objects; создать или заменить синоним v_objects на v_objects; предоставить выбор на v_objects пользователю2; И пытаюсь выбрать * из v_objects (пользователем2) Ошибка такая же: недостаточно прав - person Алексей Байдин; 17.01.2018
comment
@ АлексейБайдин это нормально без ключевого слова public, укажите это. - person Barbaros Özhan; 17.01.2018
comment
Если я добавлю ключевое слово public, все пользователи смогут выбирать из моего синонима. В данном случае мой отдел безопасности не разрешает этот метод. Мне нужно выбрать именно пользователя, и только этого пользователя. - person Алексей Байдин; 17.01.2018