2015-04-02 4 views
0

Я хочу получить доступ ко всем таблицам и пакетам схемы1 из схемы2. Я тоже давал гранты. Как показано ниже.Доступ ко всем таблицам/пакетам схемы1 из схемы2?

grant execute on hr.GetName_Proc_IN to hr2; 

Таким образом, я могу выполнить это с помощью "hr."

begin 
hr.UnitTest_RnD_PKG.GetName_Proc_IN('Hi','Welcome'); 
end; 

Но я не хочу использовать «час». и хотите выполнить, как показано ниже:

begin 
UnitTest_RnD_PKG.GetName_Proc_IN('Hi','Welcome'); 
end; 

Он бросает ОШИБКУ. В любом случае я могу так поступить .. Цените свою помощь. Благодаря

ответ

1

Проще всего было бы создать синоним в SCHEMA1:

create synonym UnitTest_RnD_PKG for hr.UnitTest_RnD_PKG 

Если вы не хотите, чтобы ввести это вручную для многих объектов, вы можете создать SQL-скрипт, с помощью этого запрос:

select 'create synonym ' || object_name || ' for ' || owner || '.' || object_name || ';' 
    from dba_objects 
    where object_type in ('PACKAGE','TABLE') 
    and owner = 'schema2' 

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

+0

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

+0

@aim_thebest смотреть редактировать ... –

Смежные вопросы