Предполагая, что по схеме вы имеете в виду заявление DDL для таблицы, вот один из способов сделать это:
-- as table owner
create or replace function getDDLForTable(table_name in varchar2)
return CLOB is
l_Result CLOB;
begin
select dbms_Metadata.get_ddl('TABLE',
table_name)
into l_result
from dual;
return l_Result;
end;
grant execute on getDDLForTable to <other_user>;
-- as other_user
select <owner>.getDDLForTable('T') from dual
Уловка, чтобы создать функцию, которая возвращает оператор DDL (как владелец таблицы) и предоставить права на выполнение этой функции другому пользователю.
Что именно означает «дать разрешение на доступ к схеме»? –
@ user2268796 Схема речи Oracle является синонимом для пользователя, поэтому, если вы говорите об операторе DDL для таблицы, вы не должны использовать термин «схема» для этого - это действительно запутывает. –