|
|
|
Найти источник "grant execute on SYS" в v$db_object_cache
|
|||
|---|---|---|---|
|
#18+
Добрый день. Как найти пакет или пользователя, который выполняет курсор, который отражается в v$db_object_cache как "grant execute on SYS"? Что еще это может быть? Выполняется очень часто и фрагментирует shared pool до ORA-4031 В SQLAREA ничего похожего нет. Код: plsql 1. OWNERNAMEDB_LINKNAMESPACETYPESHARABLE_MEMLOADSEXECUTIONSLOCKSPINSKEPTCHILD_LATCHINVALIDATIONSHASH_VALUELOCK_MODEPIN_MODESTATUSTIMESTAMPPREVIOUS_TIMESTAMPLOCKED_TOTALPINNED_TOTALPROPERTYFULL_HASH_VALUEnullgrant execute on SYSnullSQL AREACURSOR156431219188119185400NO226831918803412088987NONENONEVALID2016-12-10/13:25:50null1918801null1abd5ab18f97e6a2bcef8947cb60589b Oracle 11.2.0.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2016, 10:41 |
|
||
|
Найти источник "grant execute on SYS" в v$db_object_cache
|
|||
|---|---|---|---|
|
#18+
Alexey N. (Пермь), java в базе используется? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2016, 11:19 |
|
||
|
Найти источник "grant execute on SYS" в v$db_object_cache
|
|||
|---|---|---|---|
|
#18+
И приведите более подробный текст ora-4031 возникающей у вас ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2016, 11:26 |
|
||
|
Найти источник "grant execute on SYS" в v$db_object_cache
|
|||
|---|---|---|---|
|
#18+
Оракловая JAVA не используется. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2016, 11:55 |
|
||
|
Найти источник "grant execute on SYS" в v$db_object_cache
|
|||
|---|---|---|---|
|
#18+
Alexey N. (Пермь), Быстрый тест показывает, что можно попробовать использовать x$kglob.kglobt44. Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. Судя по v$fixed_view_definition, в стандартных представлениях (GV$%) конкретно это поле для grant не визуализируется (дальше не grep-ал). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2016, 12:07 |
|
||
|
Найти источник "grant execute on SYS" в v$db_object_cache
|
|||
|---|---|---|---|
|
#18+
unable to allocate 56 bytes of shared memory ("streams pool","unknown object","streams pool","fixed allocation callback") streams используется? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2016, 12:14 |
|
||
|
Найти источник "grant execute on SYS" в v$db_object_cache
|
|||
|---|---|---|---|
|
#18+
SeaGate, вы большой молодец, спасибо. Виновника нашел. Сейчас буду выяснять действительно ли он причина ORA-4031 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2016, 12:23 |
|
||
|
Найти источник "grant execute on SYS" в v$db_object_cache
|
|||
|---|---|---|---|
|
#18+
envunable to allocate 56 bytes of shared memory ("streams pool","unknown object","streams pool","fixed allocation callback") streams используется? Затрудняюсь сказать. streams_pool_size = 0 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2016, 12:38 |
|
||
|
Найти источник "grant execute on SYS" в v$db_object_cache
|
|||
|---|---|---|---|
|
#18+
SeaGate 4 execute immediate 'grant execute on dbms_lock to tc'; Была найдена процедура с помощью запроса к x$kglob. В ней динамическая генерация неименованного PL/SQL блока. Но в ней нет никаких явных грантов. Из SYS пакетов используется только dbms_output. Что то может вызывать неявный грант "grant execute on SYS"? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2016, 13:30 |
|
||
|
Найти источник "grant execute on SYS" в v$db_object_cache
|
|||
|---|---|---|---|
|
#18+
Alexey N. (Пермь), ты там внимательней посмотри, а то вдруг инъекции можно вообще не заметить что там исполняется, на первый взгляд и базу обновить хорошо бы 396940.1 ORA-4031 Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2016, 15:30 |
|
||
|
Найти источник "grant execute on SYS" в v$db_object_cache
|
|||
|---|---|---|---|
|
#18+
Alexey N. (Пермь), Alexey N. (Пермь)Что то может вызывать неявный грант "grant execute on SYS"? Я бы начал с того, что в этих блоках, и с полного текста проблемной команды grant. Найти виновника можно попытаться в ASH (v$active_session_history.sql_opname = 'GRANT OBJECT', like 'GRANT%', например). Если с ASH не повезет, то уже более системно на выбор: 1. enable_ddl_logging 2. DDL trigger (before grant) 3. audit 4. trace[sql_ddl] (есть PL/SQL Call Stack) Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. Для полного текста еще можно subheap dump сделать, вида (для 'grant execute on dbms_output to tc'): Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. Сходу не могу сказать, как более просто текст получить post factum. В library_cache dump для этого случая полный текст присутствует, но это не точечное получение. Есть еще: Patch 20308798 - DBA_HIST_SQLTEXT SHOWS TRUNCATED STATEMENT IN CASE STATEMENT IS CREATE TABLE но я не вижу, что он для GRANT что-то меняет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2016, 05:26 |
|
||
|
|

start [/forum/topic.php?fid=52&msg=39365600&tid=1886820]: |
0ms |
get settings: |
8ms |
get forum list: |
15ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
157ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
60ms |
get tp. blocked users: |
1ms |
| others: | 221ms |
| total: | 480ms |

| 0 / 0 |
