Как я проверяю, какие схемы предоставили, ВЫПОЛНЯЮТ разрешение на объекте Oracle?

Поскольку люди, которые разработали формат библиотеки, не хотели "тратить впустую" пространство для редко используемой информации как макросы препроцессора C и объявления функции.

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

Большинство языков после C/C++ хранит эту информацию в выводе (Байт-код Java, например), или они не используют предварительно скомпилированный формат вообще, всегда распределяются в исходной форме и компилируют на лету (Python, Perl).

6
задан MPritchard 10 August 2009 в 14:42
поделиться

1 ответ

SELECT grantee
  FROM all_tab_privs
 WHERE table_name = '<your object name>'
  AND privilege = 'EXECUTE'
  AND grantor = '<object owner>';

Да, я знаю, там написано «имя_таблицы», но это также относится и к исполняемым объектам. Таблица DBA_TAB_PRIVS также работает. Вам потребуются соответствующие разрешения (например, роль DBA, SELECT ANY TALBE) для выбора из этих представлений и просмотра всех данных.

В ответ на комментарий Мартина ... Вышеупомянутый - самый простой способ сделать то, что вы просили что я знаю. Если вы хотите ограничить его пакетами, попробуйте следующее:

SELECT * FROM all_tab_privs JOIN all_objects ON (table_name = object_name)
 WHERE table_name = '<your object name>'
   AND object_type = 'PACKAGE'
   AND privilege = 'EXECUTE'
   AND grantor = '<object owner>';
6
ответ дан 17 December 2019 в 02:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: