sysContext для H2database

(або H2database для розробників розбещених можливостями серверу бази даних Oracle)

У сервері бази даних Oracle реалізовано цікаву функцію sys_context(”,”), яка дозволяє отримати багато цінної інформації про контекст сеансу. Кожен сеанс має ініціалізований контекст ‘USERENV’.

Ось приклад:

          select sys_context('USERENV', 'CURRENT_USER') sc from dual
union all select sys_context('USERENV', 'CURRENT_USERID') sc from dual
union all select sys_context('USERENV', 'IP_ADDRESS') sc from dual
union all select sys_context('USERENV', 'DB_NAME') sc from dual
union all select sys_context('USERENV', 'EXTERNAL_NAME') sc from dual
union all select sys_context('USERENV', 'HOST') sc from dual
union all select sys_context('USERENV', 'INSTANCE') sc from dual
union all select sys_context('USERENV', 'ISDBA') sc from dual
union all select sys_context('USERENV', 'OS_USER') sc from dual
union all select sys_context('USERENV', 'SESSION_USER') sc from dual
union all select sys_context('USERENV', 'SESSION_USERID') sc from dual
union all select sys_context('USERENV', 'SESSIONID') sc from dual
union all select sys_context('USERENV', 'TERMINAL') sc from dual
union all select sys_context('userenv', 'module') from dual;

Більше інформації про функцію можна знайти в документації.

Серед усіх змінних для реалізації розподілу доступу цікава змінна ‘OS_USER’. Ця змінна містить назву облікового запису з яким користувач увійшов у систему.

У сервері бази даних H2 подібної функції немає, але є можливість визначати свої змінні. Змінні зберігаються тільки в активній сесії і з інших сесій недоступні, що робить їх надзвичайно цінними з точки зору управління сесією. Крім того така змінна може бути визначена під час підключення клієнта до серверу бази даних.

На додаток до вже описаним настройки, інші настройки бази даних можуть бути передані в базу даних URL. Додавання, INIT=set в кінці URL-адресу бази даних так само, як виконання інструкції SET встановлене значення тільки після підключення. Список підтримуваних параметрах див SQL граматики.

Для цього необхідно в URL додати наступний текст:

;INIT=set @userenv='host_user=localhost,prog_user=test,os_user=user1'\;

URL може мати такий вигляд:

jdbc:h2:tcp://localhost:9092/testbase;INIT=set @userenv='host_user=localhost,prog_user=test,os_user=user'\;

=-=-=-=-=
Powered by Blogilo

Залишити коментар