Создание пользователя Oracle, который будет видеть только заголовки процедур

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

Любая идея, как я могу этого добиться, какие привилегии должны быть установлены?


person shin    schedule 20.05.2011    source источник
comment
Должен ли пользователь иметь возможность выполнять эти процедуры и функции?   -  person OMG Ponies    schedule 20.05.2011


Ответы (2)


Создание представления с учетной записью администратора базы данных и предоставление SELECT для этого представления должно работать:

CREATE VIEW dba_source_pkg_headers AS
SELECT *
  FROM dba_source
 WHERE type = 'PACKAGE';

GRANT select ON dba_source_pkg_headers TO your_user;

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

Если вы используете обычные функции и процедуры, вы можете разрешить выбор на dba_arguments, это даст вам доступ ко всем параметрам функции/процедуры.

person Vincent Malgrat    schedule 20.05.2011

Я не уверен, что это вообще возможно. В качестве обходного пути вы можете создать «фасадные» процедуры в схеме, к которой у вашего пользователя есть доступ, а затем делегировать работу процедурам в другой схеме, к которой у вашего пользователя нет доступа. Но это довольно навязчивая модификация вашей базы данных.

person Lukas Eder    schedule 20.05.2011
comment
На самом деле я ищу это решение для нашего провайдера. У нас есть доступ к этой базе данных и мы можем вызывать процедуры по DBLINK, но мы не видим никаких пакетов, и мы придумали, что наш провайдер может создать для нас другого пользователя, который будет видеть только заголовки. - person shin; 20.05.2011