Что мне нужно сделать, так это создать пользователя оракула, который будет видеть только заголовки процедур и функций без тел.
Любая идея, как я могу этого добиться, какие привилегии должны быть установлены?
Что мне нужно сделать, так это создать пользователя оракула, который будет видеть только заголовки процедур и функций без тел.
Любая идея, как я могу этого добиться, какие привилегии должны быть установлены?
Создание представления с учетной записью администратора базы данных и предоставление 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
, это даст вам доступ ко всем параметрам функции/процедуры.
Я не уверен, что это вообще возможно. В качестве обходного пути вы можете создать «фасадные» процедуры в схеме, к которой у вашего пользователя есть доступ, а затем делегировать работу процедурам в другой схеме, к которой у вашего пользователя нет доступа. Но это довольно навязчивая модификация вашей базы данных.