Может ли кто-нибудь предоставить достаточно хороший пример совместного использования Sys_Context
в действии, используя
Dbms_Session.Set_Identifier(user_id)
Я хочу получить доступ к некоторому атрибуту контекста sys из другого соединения после успешного входа пользователя.
Мой сценарий :
Spring Boot 2.0.6 Подключение к Oralce 11g с использованием пула соединений HikariCP
Порядок
- Пользователь заходит на страницу входа
- Вход в систему ->
user_id
установлен Dbms_Session.Set_Context('ENV', USER_ID, user_id)
- Пользователь получает доступ к некоторому ресурсу (например, учетным записям) ->
Sys_Context('ENV', user_id)
возвращает Null
Sys_Context('ENV', user_id)
возвращает значение Null, поскольку ресурс получает доступ к базе данных через другое соединение, следовательно, отсутствует user_id в контексте CURRENT .
В этой документации Oracle утверждается, что это возможно: https://docs.oracle.com/cd/B28359_01/network.111/b28531/app_context.htm#DBSEG79745
Как указано ниже:
https://oracle -base.com / Статьи / разное / dbms_session
https://web.stanford.edu/dept/itss/docs/oracle/10gR2/network.102/b14266/apdvcntx.htm
Если это невозможно, скажите, для чего конкретно используется Dbms_Session.Set_Identifier(user_id)
, потому что я нахожу эти документы довольно неясными и не могу воспроизвести любые примеры, которые они показывают.