2013-12-16 4 views
3

Я пытаюсь перебраться с помощью DBMS_PROFILER, но мне грозит проблема, с которой я не могу пройти.DBMS_PROFILER - только анонимный

Я последовал за учебник на этой странице: http://www.oracleflash.com/44/Write-fast-and-efficient-PLSQL---DBMS_PROFILER.html

и все было хорошо, пока я не изменил пользователь. Когда я запускаю профилировщик в качестве владельца кода, все статистические данные в порядке, но когда я запускаю эти процедуры как другой пользователь (который, конечно, имеет разрешения EXECUTE), я могу видеть только «ANONYMOUS» в таблицах профилировщиков.

Я нашел кое-что, глядя вокруг в Интернете, и выполняются следующие действия:

  • Я предоставленные права на выполнение для процедур вызова пользователя,
  • Я также предоставленные разрешения отлаживать,
  • Я скомпилированные процедуры DEBUG ,
  • Я проверил, что код «INTERPRETED», а не «NATIVE»,
  • Наконец, вызывающий пользователь также имеет привилегию CREATE PROCEDURE.

Тем не менее, он все еще не работает. Проблема в том, что я хочу профилировать приложение, которое запускает код как другой пользователь, поэтому я не могу его изменить. Любые идеи, что я должен делать, и почему он не работает?

ответ

1

Проблема решена. Документ говорит (в разделе безопасности), что вам нужно иметь привилегии для создания объектов, которые вы хотите контролировать. Я хотел контролировать пакет в других схемах, поэтому сначала мне показалось, что мне нужна привилегия CREATE PROCEDURE, которая не помогла. Фактически, вам нужно иметь привилегии для создания конкретного объекта, который вы хотите контролировать, поэтому вам просто нужно иметь CREATE ANY PROCEDURE для пользователя, с которого вы используете другие пакеты shema.

0

Вы отметили этот вопрос как Oracle 11g, и в этом случае вам повезло. Oracle добавила новый пакет профилировщиков, DBMS_HPROF. Это иерархический профилировщик, что означает, что он может развернуться в разных схемах. Find out more.

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