powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Вопрос по идентификации middle tier пользователя в ORACLE
32 сообщений из 32, показаны все 2 страниц
Вопрос по идентификации middle tier пользователя в ORACLE
    #38188672
marlis82
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть Weblogic сервер на котором крутится приложение на JSF+ADF. Авторизация и доступ по логину и паролю через пользователей в СУБД через ADF Security+Weblogic Authenticator.

Необходимо фиксировать пользователей apllication-а в СУБД. Каким образом организовать? Пока что вычитал механизм передачи через контекст с глобальным доступом в Oracle. Для чего можно использовать DBMS_SESSION пакет (SET_IDENTIFIER, SET_CONTEXT), соответственно с разным client_id.

Вопрос на каком этапе использовать:
- перед внесением изменений в базу(каким образом передать в контекст);
- во время логона (минус в том что могут зайти несколько пользователей аппликейшна и пул соединений может затереть предыдущий контекст);

Есть ли другой механизм наподобие функции V в апексе или USER переменной в СУБД?

Спасибо
...
Рейтинг: 0 / 0
Вопрос по идентификации middle tier пользователя в ORACLE
    #38188739
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
marlis82,
Найди тему. Тут было про пул..логины...и прокси аутентификацию.
...
Рейтинг: 0 / 0
Вопрос по идентификации middle tier пользователя в ORACLE
    #38189274
just_vladimir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
marlis82,

как на счет варианта - в момент получения соединения из пула?
...
Рейтинг: 0 / 0
Вопрос по идентификации middle tier пользователя в ORACLE
    #38189324
marlis82
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
just_vladimir,

Спасибо за ответ.
А каким образом? Не будет ли параллельных запросов на запрос соединения?
...
Рейтинг: 0 / 0
Вопрос по идентификации middle tier пользователя в ORACLE
    #38189385
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
marlis82Необходимо фиксировать пользователей apllication-а в СУБД
а что это значит? Контекст там можно использовать только в хранимках. У вас хранимки?
...
Рейтинг: 0 / 0
Вопрос по идентификации middle tier пользователя в ORACLE
    #38189483
marlis82
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123,

Да в СУБД есть хранимая процедура которая вызывается на стороне веб сервера, которая устанавливает аттрибуты в глобальном контексте для конкретного юзера, идентификатором наверное будет сешн айди соединения, далее аттрибуты айпи адрес, юзернейм, роли, время создания соединения и прочее.

Таким образом при изменении каких либо данных в таблице триггер будет считывать логин и прочие аттрибуты вносящего имзенения пользователя через идентификатор сешшн айди. Но меня интересует вопрос в какой момент вызывать процедуру для установки данных в контексте?

Или необходимо во всех табличках держать дополнительное поле с сешшн айди? При изменении данных загонять туда на стороне веб сервера данные?

P.S.: Насчет предложения прозрачного проксирования, это не подходит т.к. не хотелось бы держать всех пользователей апплик в качестве пользователей СУБД. Неудобство администрирования.
...
Рейтинг: 0 / 0
Вопрос по идентификации middle tier пользователя в ORACLE
    #38189573
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
marlis82,
у меня такая схема работает без пула. Т.е. если нет пула и каждый пользователь получает свой коннект пока не отработает и не выйдет.
Т.е. это длинные транзакции для бизнес приложения.
Если публичный сервер, то там обезличенные пользователи ходят под одной схемой оракла (одним логином).
Ну и естьсмешанная схема.
Без пула? Юзверей не много?
...
Рейтинг: 0 / 0
Вопрос по идентификации middle tier пользователя в ORACLE
    #38189605
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
marlis82,
и задача какая? Просто логи кто что делал или Запрет дейчтвий по ролям?
А то, мне кажется ты соединяешь 2 технологии вместе JSF\ADF и ручные Роли через ручной контекст БД.
...
Рейтинг: 0 / 0
Вопрос по идентификации middle tier пользователя в ORACLE
    #38189737
marlis82
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123,

автору меня такая схема работает без пула. Т.е. если нет пула и каждый пользователь получает свой коннект пока не отработает и не выйдет.Т.е. это длинные транзакции для бизнес приложения.

А загрузка СУБД?

авторЕсли публичный сервер, то там обезличенные пользователи ходят под одной схемой оракла (одним логином).
Ну и естьсмешанная схема.

О это интересно. А можно поподробнее как реализовано?

авторБез пула? Юзверей не много?
пользователей на начальном этапе 150, потом 200 в течение полугода еще добавятся и т.д. по нарастающей

автори задача какая? Просто логи кто что делал или Запрет действий по ролям?
Тут и логи на каждую транзакцию и запрет действий, на уровне СУБД тоже будет на триггерах.

авторА то, мне кажется ты соединяешь 2 технологии вместе JSF\ADF и ручные Роли через ручной контекст БД.
Да есть такое )))
Роли на сервере приложений будут на уровне адф секьюрити + авторизация доступ на конкретные jsf страницы.
На стороне сервера предполагается второй уровень защиты описанный выше, ну плюс логгирование.
...
Рейтинг: 0 / 0
Вопрос по идентификации middle tier пользователя в ORACLE
    #38189795
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
marlis82,
>А загрузка СУБД?
наверно нагрузку имел ввиду? ). Ну конечно не Одноклассники. Но 1K - 10K потянет.

2.
Смешивать не очень хорошо.
А вот, про то что ходят под одним, так это ты мне должен рассказывать. это стандарт в Java - Хибер .
Поэтому, с ним определись. Все проекты на нём.

Иначе:
Код: java
1.
2.
3.
4.
5.
6.
Сервлет{
    Conn = GetConnection;
    Conn.SetInfo(IP.....)
    Conn. поработал
    Conn.Close
}


у меня так сайт работает)
______________________________________________
"Сделай настолько просто, насколько это возможно, но не проще". © А. Эйнштейн.
AutoPOI.ru — ГИС-технологии для Oracle
...
Рейтинг: 0 / 0
Вопрос по идентификации middle tier пользователя в ORACLE
    #38189804
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
marlis82Тут и логи на каждую транзакцию и запрет действий, на уровне СУБД тоже будет на триггерах.
если нравится в СУБД, тогда минимум в Хибере...можно без пула.
Если с пулом то найди тему - прокси-ХХХХХХ
...
Рейтинг: 0 / 0
Вопрос по идентификации middle tier пользователя в ORACLE
    #38189891
marlis82
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123,
авторнаверно нагрузку имел ввиду? ). Ну конечно не Одноклассники. Но 1K - 10K потянет.
Да, но даже при 2К я думаю PGA всю память съест.

авторСмешивать не очень хорошо.
А вот, про то что ходят под одним, так это ты мне должен рассказывать. это стандарт в Java - Хибер.
Поэтому, с ним определись. Все проекты на нём.

Иначе:
Сервлет{
Conn = GetConnection;
Conn.SetInfo(IP.....)
Conn. поработал
Conn.Close
}

у меня так сайт работает)


Я использую АДФ (Fusion App) а это уже ОРМ. Тут такое не проканает )


авторесли нравится в СУБД, тогда минимум в Хибере...можно без пула.
Если с пулом то найди тему - прокси-ХХХХХХ

Можно поподробнее?
...
Рейтинг: 0 / 0
Вопрос по идентификации middle tier пользователя в ORACLE
    #38190001
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
marlis82Можно поподробнее?

С праздником мужики. Вопрос по JAAS
авторДа, но даже при 2К я думаю PGA всю память съест.
всю - это сколько?
Неужели ты думаешь, что Оракл 2-К записей выкидывают на помойку? Или срочно переходят под Веб?
Ну возьми в цикле коннекты и запусти SELECT FROM DUAL и проверь)
...
Рейтинг: 0 / 0
Вопрос по идентификации middle tier пользователя в ORACLE
    #38190006
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
marlis82Я использую АДФ (Fusion App) а это уже ОРМ.
и как ты скрещиваешь ОРМ и хранимки (БЛ в БД)?
...
Рейтинг: 0 / 0
Вопрос по идентификации middle tier пользователя в ORACLE
    #38190036
marlis82
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123,

На самом деле хранимка используется только для того чтобы выставить данные в глобальном контексте.

Насчет Proxy Authen она не подходит я изначально писал, в оракле требование, я так понял , чтобы пользователи аплпикейшна были также и пользователями оракла. Разница реализации между использованием прокси аус и использованием пула соединений лишь в том, что в базу пользователь лезет под личной учеткой или под общей. А на стороне БД пользователи в обеих случаях есть и являются пользователями БД.
...
Рейтинг: 0 / 0
Вопрос по идентификации middle tier пользователя в ORACLE
    #38190081
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
marlis82чтобы пользователи аплпикейшна были также и пользователями оракла.
1.
У Оракла под пользователями понимается Схема (в пику сиквелу).
Т.е. CREATE USER логин пароль создаёт пол-ля.
Дальше они вынуждены работать не совместно, т.к. данные НЕ общие. Их можно обобщить, но тогда надо раздавать права "владельца" всем.
Т.е. в данном варианте считай, как в сиквеле у каждого своя БД.

2. В той ссылке делается вручную в пуле передаётся инфа через контекст.
ИЛИ 2 вариант -
CREATE USER GLOBAL - это корпоративный пользователь.

Проясни про пользователей Оракла исходя из п.п.1
...
Рейтинг: 0 / 0
Вопрос по идентификации middle tier пользователя в ORACLE
    #38190094
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
marlis82чтобы пользователи аплпикейшна были также и пользователями оракла
если ты это сделаешь, то тебе надо будет при заведении нового пользователя давать ему гранты на все таблички.
Либо я дела скрипт:
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
set serveroutput on;

declare
  v_owner varchar2(255);
  v_on varchar2(255);
begin 
  for i in (select owner, object_name from all_objects where object_type in('TABLE','VIEW') and owner = 'DEVXXX') loop
    v_owner := i.owner;
    v_on := i.object_name;
    begin
     execute immediate 'grant select on '||i.owner||'.'||i.object_name|| ' to ddddd';
     exception when others then
      dbms_output.put_line(v_owner||'.'||v_on||' :: '||SQLERRM);
    end;
  end loop;
end;
/


кому где удобнее писать. И есть ли в штате разработчик БД.
...
Рейтинг: 0 / 0
Вопрос по идентификации middle tier пользователя в ORACLE
    #38190118
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
получается такая линейка масштабирования сверху вниз

Код: plaintext
1.
2.
3.
4.
- ОРМ - все под одним - БД импотент
- ОРМ? - + CREATE USER + скрипты
- ОРМ ?- + самопальный пул чтобы передать инфу
большой скачок-промежуток
- ОРМ - + CREATE USER GLOBAL + LDAP

Удачи!
...
Рейтинг: 0 / 0
Вопрос по идентификации middle tier пользователя в ORACLE
    #38190126
marlis82
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
1.
У Оракла под пользователями понимается Схема (в пику сиквелу).
Т.е. CREATE USER логин пароль создаёт пол-ля.
Дальше они вынуждены работать не совместно, т.к. данные НЕ общие. Их можно обобщить, но тогда надо раздавать права "владельца" всем.

Да конечно никто не спорит. Естественно нужно заводить пользователей (схему), создавать паблики, давать им гранты на текущую схему и т.д.
Т.е. в данном варианте считай, как в сиквеле у каждого своя БД.
схема имелась ввиду наверное)

2. В той ссылке делается вручную в пуле передаётся инфа через контекст.
ИЛИ 2 вариант -
CREATE USER GLOBAL - это корпоративный пользователь.
Проясни про пользователей Оракла исходя из п.п.1
[/quote]

исходя из того что я читал про ксвозную аутентиф, напишу так:
На стороне БД:
create user mark identified by passs
create user natasha identified by passs
alter user mark GRANT CONNECT THROUGH dbuser;
alter user mark GRANT CONNECT THROUGH dbuser;
На стороне вэблоджика соотв-но настраивается секьюрити реалм.
Но этот вариант меня не устраивает вообще.

Нужен 1 пользователь базы со всеми правами селект апдейт делет, и апп пользователи, данные о которых забиваются в глобальном контексте. Повторю вопрос - на какой стадии передавать в контекст данные о пользователе?
...
Рейтинг: 0 / 0
Вопрос по идентификации middle tier пользователя в ORACLE
    #38190219
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
marlis82схема имелась ввиду наверное)
Я имел ввиду, у Оракла "Схема" = "БД" у Сиквела.
авторна какой стадии передавать в контекст данные о пользователе?
сразу после получения коннекта через который МОЖНО передать SQL выражением.
Конкретно не знаю - смотри свой ОРМ.
Удачи!
...
Рейтинг: 0 / 0
Вопрос по идентификации middle tier пользователя в ORACLE
    #38190593
Сергей Арсеньев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
marlis82,

Какие только люди велосипеды не изобретают, лишm бы не читать документацию, например про SessionEventAdapter (SessionEventListener).
...
Рейтинг: 0 / 0
Вопрос по идентификации middle tier пользователя в ORACLE
    #38190867
marlis82
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сергей Арсеньев,

А как прикрутить туда информацию на стороне веб приложения и извлечь ее на стороне СУБД?
...
Рейтинг: 0 / 0
Вопрос по идентификации middle tier пользователя в ORACLE
    #38190873
marlis82
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123,

Спасибо
...
Рейтинг: 0 / 0
Вопрос по идентификации middle tier пользователя в ORACLE
    #38191331
Сергей Арсеньев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
marlis82,

Например.
1. На стороне Веб приложения подписываешься на событие открытие сессии (или перед Update)
2. В обработчике события берешь getPrincipal (ну или что-то еще) и текущую сессию ORM.
3. В сессию пишешь при помощи PreparedStatement значение из п. 2, например в контекст.
4. В триггере на стороне БД делашь все что хочешь со значением из контекста (ну или в тексте запроса вьюшки или еще где захочешь).
...
Рейтинг: 0 / 0
Вопрос по идентификации middle tier пользователя в ORACLE
    #38191352
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей Арсеньев,
+1 Если провайдер поддерживает событие с передачей коннекта
...
Рейтинг: 0 / 0
Вопрос по идентификации middle tier пользователя в ORACLE
    #38193972
marlis82
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
авторСергей Арсеньев


То что нужно. В инете очень мало инфы и нет по практической реализации.
Не могли бы Вы скинуть линк?
...
Рейтинг: 0 / 0
Вопрос по идентификации middle tier пользователя в ORACLE
    #38194221
GregTk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
marlis82,
Что касается прокси то я для одного из вопросов здесь на форуме натакнулся на такую штуку EclipseLink
Eclipse Link это непросредствннно реализация JPA. фича в том что мы открываем пулл соединений и потом когда пользователь нашего приложения берет соединение себе мы можем проставить у соединения пользователя, грубо говоря поменять на то что нужно нам и этот пользователь будет уже фигурировать в Oracle. Всё это знаю только в теории, но как направление помойму это правильно. Мы завели пользователей в Oracle, создали пул соединений, при получении соединения ставим нужного нам пользователя.
...
Рейтинг: 0 / 0
Вопрос по идентификации middle tier пользователя в ORACLE
    #38194405
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GregTk,
и зачем вам тогда пул, если вы при получении коннекта перелогиниваетесь на другого?
Пул вообще теряет всякий смысл.
И он не нужен в контексте данной задачи (пользователи БД).
...
Рейтинг: 0 / 0
Вопрос по идентификации middle tier пользователя в ORACLE
    #38194619
GregTk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,
из описания так понимаю что реконнекта нет, просто меняется контекст.
...
Рейтинг: 0 / 0
Вопрос по идентификации middle tier пользователя в ORACLE
    #38194664
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GregTkPetro123,
из описания так понимаю что реконнекта нет, просто меняется контекст.
контекст в оракле - это просто глобальная переменная в БД прицепленная к коннекту.
Т.е. если схема:
- все апп пользователи ходят под одним БД суперЮзверем.
То это значит, нужно контролировать смену контекста, когда Вася вместо Пети взял из пула коннет для себя.
Какая же это безопасность? Если это делать руками и на коленке?

Особенно, если учесть, что Хибер делает то же самое, но не через контекст-переменную, а через свои механизмы (Ид сессии и т.д.)

Имхо
...
Рейтинг: 0 / 0
Вопрос по идентификации middle tier пользователя в ORACLE
    #38194673
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Вопрос по идентификации middle tier пользователя в ORACLE
    #38196102
marlis82
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123Особенно, если учесть, что Хибер делает то же самое, но не через контекст-переменную, а через свои механизмы (Ид сессии и т.д.)

Имхо


Можно поподробнее про это?
...
Рейтинг: 0 / 0
32 сообщений из 32, показаны все 2 страниц
Форумы / Java [игнор отключен] [закрыт для гостей] / Вопрос по идентификации middle tier пользователя в ORACLE
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]