|
oracle 18 xe - dbms_session.is_role_enabled
|
|||
---|---|---|---|
#18+
На Oracle 18 XE (Windows) возникает ошибка при вызове dbms_session.is_role_enabled из триггера это баг ? К кого есть настоящая 18 версия под рукой можете проверить этот скрипт: Код: sql 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. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44.
... |
|||
:
Нравится:
Не нравится:
|
|||
18.06.2019, 15:19 |
|
oracle 18 xe - dbms_session.is_role_enabled
|
|||
---|---|---|---|
#18+
PPAвозникает ошибка И какая же ошибка возникает? Мсье вообще в курсе, что хранимый код требует прямого гранта на используемые объекты, в т.ч. execute на dbms_session? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.06.2019, 15:32 |
|
oracle 18 xe - dbms_session.is_role_enabled
|
|||
---|---|---|---|
#18+
andrey_anonymous, dbms_session по дефолту дана public, этого достаточно должно быть если у public, ее нет - то это уже харденинг/customization Regards Maxim ... |
|||
:
Нравится:
Не нравится:
|
|||
18.06.2019, 15:56 |
|
oracle 18 xe - dbms_session.is_role_enabled
|
|||
---|---|---|---|
#18+
andrey_anonymous, Ошибка такая: (т.е. dbms_session.is_role_enabled('PS_RW_ROLE') в триггере возвращает false) Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
У dbms_session из коробки грант на PUBLIC - триггер компилируется и без явного гранта схеме PS Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9.
... |
|||
:
Нравится:
Не нравится:
|
|||
18.06.2019, 16:04 |
|
oracle 18 xe - dbms_session.is_role_enabled
|
|||
---|---|---|---|
#18+
PPA, Причем тут dbms_session.is_role_enabled? Триггер всегда игнорирует роли, т.е. внутри триггера роль PS_RW_ROLE выключена. Медитируй: Код: 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.
SY. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.06.2019, 16:32 |
|
oracle 18 xe - dbms_session.is_role_enabled
|
|||
---|---|---|---|
#18+
SY, В доке как про этой найти? тогда не понятно какой смысл в функции dbms_session.is_role_enabled вообще если ее в триггерах нельзя юзать. и чем контекст триггера отличается от обычной хранимки? В XE 10 это работало верно. в 11 SE2 тоже все ок: Код: 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.
... |
|||
:
Нравится:
Не нравится:
|
|||
18.06.2019, 16:42 |
|
oracle 18 xe - dbms_session.is_role_enabled
|
|||
---|---|---|---|
#18+
PPAчем контекст триггера отличается от обычной хранимки? см. Код: plsql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
18.06.2019, 16:47 |
|
oracle 18 xe - dbms_session.is_role_enabled
|
|||
---|---|---|---|
#18+
PPA, И роли в триггерe нельзя "и уважать себя заставил" в отличие от процедур/ф-ций: Код: 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.
SY. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.06.2019, 16:47 |
|
oracle 18 xe - dbms_session.is_role_enabled
|
|||
---|---|---|---|
#18+
SYТриггер всегда игнорирует роли, т.е. внутри триггера роль PS_RW_ROLE выключена. Медитируй:Следи за руками: есть пока не забаненная How to Verify the Enabled Roles for a Session Within a Trigger or PL/SQL Routine (Doc ID 159757.1) но есть уже DBMS_SESSION.IS_ROLE_ENABLED ALWAYS RETURN FALSE (Doc ID 2305012.1) Начиная с 12.2 Oracle довёл до логического конца тезис All roles are disabled in any named PL/SQL block that executes with definer's rights. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.06.2019, 16:50 |
|
oracle 18 xe - dbms_session.is_role_enabled
|
|||
---|---|---|---|
#18+
PPAВ XE 10 это работало верно. в 11 SE2 тоже все окВ 12.2 доступность роли при проверке в definer посчитали багом и исправили. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.06.2019, 16:53 |
|
oracle 18 xe - dbms_session.is_role_enabled
|
|||
---|---|---|---|
#18+
PPAтогда не понятно какой смысл в функции dbms_session.is_role_enabled вообще если ее в триггерах нельзя юзать. Ты не понял. Дело не в dbms_session.is_role_enabled. Он прекрасно работает в триггерах. Это просто зеркало на которое пенять бессмысленно. Роли в триггере вырублены что dbms_session.is_role_enabled и показывает. SY. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.06.2019, 16:53 |
|
oracle 18 xe - dbms_session.is_role_enabled
|
|||
---|---|---|---|
#18+
ElicСледи за руками: TC явно спрашивал про 18C. До 12.2 dbms_session.is_role_enabled в definer rights показывал километры - роль-то в действительности была disabled и любой SQL требующий привилегию из роли вылетал. SY. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.06.2019, 17:06 |
|
oracle 18 xe - dbms_session.is_role_enabled
|
|||
---|---|---|---|
#18+
SYTC явно спрашивал про 18C У ТС явно кастомная обработка прикладных ролей. Я бы предложил ему двигаться в сторону контекстов. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.06.2019, 17:13 |
|
oracle 18 xe - dbms_session.is_role_enabled
|
|||
---|---|---|---|
#18+
SYДо 12.2 dbms_session.is_role_enabled в definer rights показывал километрыТы первую ноту читал-то хоть? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.06.2019, 17:16 |
|
oracle 18 xe - dbms_session.is_role_enabled
|
|||
---|---|---|---|
#18+
andrey_anonymousЯ бы предложил ему двигаться в сторону контекстов. Согласен. ТC использует роли не по назначению - как состояния. Вопрос в том используются они статически или динамически. Если динамически, то да - контекст. Если статически, то возмoжно USER_ROLE_PRIVS. SY. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.06.2019, 17:19 |
|
oracle 18 xe - dbms_session.is_role_enabled
|
|||
---|---|---|---|
#18+
Кстати, 19c тут немного подшаманили Код: 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. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58.
... |
|||
:
Нравится:
Не нравится:
|
|||
16.11.2019, 13:26 |
|
|
start [/forum/topic.php?fid=52&msg=39827789&tid=1881850]: |
0ms |
get settings: |
11ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
50ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
58ms |
get tp. blocked users: |
1ms |
others: | 265ms |
total: | 413ms |
0 / 0 |