|
Connection pool соединение от имени пользователя
|
|||
---|---|---|---|
#18+
Добрый вечер. Подскажите пожайлуста в какую сторону капать. Есть приложение spring boot, spring jpa, hibernate. Необходимо организовать разграничение доступом на уровне СУБД ORACLE. Т.е у меня сейчас пул соединений от одного пользователя. Как в существующем стеке уйти от пула, и ходить в,БД отимени подключившегося пользователя? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.06.2020, 22:43 |
|
Connection pool соединение от имени пользователя
|
|||
---|---|---|---|
#18+
ALEX.86 Добрый вечер. Подскажите пожайлуста в какую сторону капать. Есть приложение spring boot, spring jpa, hibernate. Необходимо организовать разграничение доступом на уровне СУБД ORACLE. Т.е у меня сейчас пул соединений от одного пользователя. Как в существующем стеке уйти от пула, и ходить в,БД отимени подключившегося пользователя? Не надо так делать. Пользы никакой, зато куча проблем. А так. Надо будет создавать для каждой сессии DataSource, EntityManagerFactory, TransactionManager. При этом скорее всего по дороге отвалиться Spring Data Jpa. Т.е. работу с БД надо будет делать на чистом Hibernate. В общем постановка задачи странная, которая создает огромную дыру в безопасности. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.06.2020, 06:40 |
|
Connection pool соединение от имени пользователя
|
|||
---|---|---|---|
#18+
В Оракле была реализована подобная технология. Надо книжку достать почитать щас не помню. Кажется через CONNECT THROUGH. И в статистике сеансов по юзеру отображался user/proxy_user. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.06.2020, 09:51 |
|
Connection pool соединение от имени пользователя
|
|||
---|---|---|---|
#18+
mayton, Мудрено очень и админ не даст ... |
|||
:
Нравится:
Не нравится:
|
|||
12.06.2020, 10:48 |
|
Connection pool соединение от имени пользователя
|
|||
---|---|---|---|
#18+
Не мудрёно а специфично. Вообще мне кажется автор не тем занят. Если он хочет аудита событий то это делается по другому. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.06.2020, 10:50 |
|
Connection pool соединение от имени пользователя
|
|||
---|---|---|---|
#18+
mayton, Если в sql.ru это никто не реализовывал, то это мудрено)) ... |
|||
:
Нравится:
Не нравится:
|
|||
12.06.2020, 10:57 |
|
Connection pool соединение от имени пользователя
|
|||
---|---|---|---|
#18+
Я думаю что 100 раз реализовывали. Просто выглядит так. Автор приходит в форум и говорит. Хочу птичьего молока. Все спрашивают. А какого? А молоко коровы подойдет? А потом в конце оказалось что ему надо было вообще не птичьего молока а мышиного сала. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.06.2020, 11:00 |
|
Connection pool соединение от имени пользователя
|
|||
---|---|---|---|
#18+
Ситуация такая - есть "большой" проект, вся бизнес - логика которого реализована на PL/SQL безопасность и разграничение доступа к записям таблиц в СУБД на RLS.. К проекту сделан REST API на JAVA стеке, который я указал. REST API использует для доступа рул от имени одного пользователя и разграничения доступа для "текущего" пользователя не используются... В PostgreSQL есть "set session authorization", а вот как это реализовать применительно к ORA и текущего стека JAVA не поняно( ... |
|||
:
Нравится:
Не нравится:
|
|||
12.06.2020, 11:16 |
|
Connection pool соединение от имени пользователя
|
|||
---|---|---|---|
#18+
То есть есть варианты сохранив стек, использовать не пул соединений, а отдельное для каждого запроса пользователя, от его имени? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.06.2020, 11:33 |
|
Connection pool соединение от имени пользователя
|
|||
---|---|---|---|
#18+
Давай я тебе просто дам ссылку на книгу которую я читал и там эта процедура описана. Oracle Database 10g. Создание эффективной системы безопасности ... |
|||
:
Нравится:
Не нравится:
|
|||
12.06.2020, 11:44 |
|
Connection pool соединение от имени пользователя
|
|||
---|---|---|---|
#18+
Не очень понимаю, что значит уйти. При соединение указывать правильный имя пользователя и пароль и все. Другое дело, что смысла в пуле тогда особого не видно, кроме случая, что приложение полностью state-less и негде хранить соединение между Http-запросами. IMHO Но лучше читать в доке. Я особо с таким не разбирался https://docs.oracle.com/cd/B10501_01/java.920/a96654/connpoca.htm ... |
|||
:
Нравится:
Не нравится:
|
|||
12.06.2020, 12:18 |
|
Connection pool соединение от имени пользователя
|
|||
---|---|---|---|
#18+
ALEX.86, >К проекту сделан REST Не верно. Нужно отдельный проект. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.06.2020, 12:20 |
|
Connection pool соединение от имени пользователя
|
|||
---|---|---|---|
#18+
ALEX.86 Ситуация такая - есть "большой" проект, вся бизнес - логика которого реализована на PL/SQL безопасность и разграничение доступа к записям таблиц в СУБД на RLS.. К проекту сделан REST API на JAVA стеке, который я указал. REST API использует для доступа рул от имени одного пользователя и разграничения доступа для "текущего" пользователя не используются... В PostgreSQL есть "set session authorization", а вот как это реализовать применительно к ORA и текущего стека JAVA не поняно( Ну тут Java + Spring явно лишнее. Если пишите, на Oracle, то и продолжайте писать на Oracle . :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
12.06.2020, 12:27 |
|
Connection pool соединение от имени пользователя
|
|||
---|---|---|---|
#18+
ALEX.86, >от имени одного пользователя Именно. Изучите апекс от оракла. У вас будет один юзверь как в апексе. Ему грантуете роли юзверей. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.06.2020, 12:28 |
|
Connection pool соединение от имени пользователя
|
|||
---|---|---|---|
#18+
ALEX.86 То есть есть варианты сохранив стек, использовать не пул соединений, а отдельное для каждого запроса пользователя, от его имени? Как в апексе. Пул остается. Вход под одним юзверем. Аутентификация не оракла а отдельная при входе на инфу из пула по логину. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.06.2020, 12:31 |
|
Connection pool соединение от имени пользователя
|
|||
---|---|---|---|
#18+
ALEX.86, Грубо представьте что у вас большая субд уровня предприятия. И есть 20 отделов со своими ИС. Значит это 20 проектов отдельных. А не куча мала. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.06.2020, 12:35 |
|
Connection pool соединение от имени пользователя
|
|||
---|---|---|---|
#18+
Мне кажется в топике есть два смысла. Два антагонизма. - Экономия ресурсов (пулы и сокеты и процессы ora* на сервере) - Безопасность и аудит (отслеживание каждого действия на уровне БД) ... |
|||
:
Нравится:
Не нравится:
|
|||
12.06.2020, 12:38 |
|
Connection pool соединение от имени пользователя
|
|||
---|---|---|---|
#18+
mayton, Да. Третий смысл архитектура. "Не мешать все в кучу". ... |
|||
:
Нравится:
Не нравится:
|
|||
12.06.2020, 12:45 |
|
Connection pool соединение от имени пользователя
|
|||
---|---|---|---|
#18+
mayton - Экономия ресурсов (пулы и сокеты и процессы ora* на сервере) от Shared Server до как минимум 3-х вариантов пулов в современных версиях Oracle. AFAIK mayton - Безопасность и аудит (отслеживание каждого действия на уровне БД) + возможность хранения состояния на сервере настроили один раз нужные параметры сессии юзера и дальше они юзаются да в принципе, любые пакеты с переменными уровня пакета если есть legacy код в таких пакетах, "тупо" использовать пул - не лучшая идея + целый ряд специфических для СУБД фич Row-Level Security и пр. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.06.2020, 12:49 |
|
Connection pool соединение от имени пользователя
|
|||
---|---|---|---|
#18+
Leonid Kudryavtsev от Shared Server до как минимум 3-х вариантов пулов в современных версиях Oracle. AFAIK Точно. Спасибо. Про shared_mode я как-то и забыл. Редкая штука. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.06.2020, 13:05 |
|
Connection pool соединение от имени пользователя
|
|||
---|---|---|---|
#18+
mayton Мне кажется в топике есть два смысла. Два антагонизма. - Экономия ресурсов (пулы и сокеты и процессы ora* на сервере) ИМХО тут скорее не экономия ресурсов, а экономия времени. Т.к. быстрее отдать готовое и настроенное соединение. Чем каждый раз поднимать соединение пр обращении к БД. И да, нагрузка на БД будет меньше при пуле. mayton - Безопасность и аудит (отслеживание каждого действия на уровне БД) ИМХО насчет безопасности можно поспорить. Т.к. давать человеку напрямую обращаться к БД, даже с ограниченными правами, не очень безопасно. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.06.2020, 15:04 |
|
Connection pool соединение от имени пользователя
|
|||
---|---|---|---|
#18+
mad_nazgul Т.к. давать человеку напрямую обращаться к БД, даже с ограниченными правами, не очень безопасно. Тут если в фразе заменить БД на удалённый доступ к системе X - то смысл будет тот-же. Даже http-протокол давать опасно. Ну по крайней мере админы сетевого периметра на предприятиях так считают. Я ржу над ними но ... пускай. Это их епархия. Хотя-бы трафик отгоняют лишний. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.06.2020, 15:27 |
|
Connection pool соединение от имени пользователя
|
|||
---|---|---|---|
#18+
mayton mad_nazgul Т.к. давать человеку напрямую обращаться к БД, даже с ограниченными правами, не очень безопасно. Тут если в фразе заменить БД на удалённый доступ к системе X - то смысл будет тот-же. Даже http-протокол давать опасно. Ну по крайней мере админы сетевого периметра на предприятиях так считают. Я ржу над ними но ... пускай. Это их епархия. Хотя-бы трафик отгоняют лишний. Смотря куда доступ. Если по SSH к терминалу - то да. Если по HTTP к приложению, то скорее всего ничего страшного. Главное чтобы в SQL запросы передавались через параметры, а не через конкатенацию строк. :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
12.06.2020, 15:31 |
|
Connection pool соединение от имени пользователя
|
|||
---|---|---|---|
#18+
mad_nazgul ИМХО тут скорее не экономия ресурсов, а экономия времени. Т.к. быстрее отдать готовое и настроенное соединение. Чем каждый раз поднимать соединение пр обращении к БД. Один раз за рабочий день при входе в прикладную систему поднял и используешь, при чем тут экономия времени и нагрузка, не очень понятно. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.06.2020, 16:10 |
|
Connection pool соединение от имени пользователя
|
|||
---|---|---|---|
#18+
mad_nazgul Если по SSH к терминалу - то да. В начале 90-х, приобретали электронную почту. Работа была устроена таким образом: 1. провайдер выдавал unix login и пароль 2. по модему заходили на провайдера под login и пароль на сервер 3. читали и писали почту В 90-х было безопасно, в 2020-ом юные подаваны-любители Unix'а cделали так, что стало не безопасно. Прогресс не стоит на месте. До этого, у меня был доступ на ЕС ЭВМ которая обслуживала ВЦ работающий на оборону. Проблем с безопасностью так же не наблюдалось. Операционная система ПДО СВМ (аналог VMS от IBM) Может проблема не в технологиях, а в очумелых ручках? Админ не может / не умеет нормально безопасность на сервере настроить? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.06.2020, 16:18 |
|
Connection pool соединение от имени пользователя
|
|||
---|---|---|---|
#18+
ALEX.86 Ситуация такая - есть "большой" проект, вся бизнес - логика которого реализована на PL/SQL безопасность и разграничение доступа к записям таблиц в СУБД на RLS.. К проекту сделан REST API на JAVA стеке, который я указал. REST API использует для доступа рул от имени одного пользователя и разграничения доступа для "текущего" пользователя не используются... Автор дай немного цифр. Сколько всего пользователей в БД? Сколько активно в среднем в день? И сколько из них будут дёргать твой REST API одновременно ? Эта информация поможет нам в топике сориентироваться по ресурсам. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.06.2020, 16:23 |
|
Connection pool соединение от имени пользователя
|
|||
---|---|---|---|
#18+
Leonid Kudryavtsev В 90-х было безопасно Если все пользователи системы - люди из ведомства. То там безопасность по другому решалась. Просто подписал бумажку что дескыть обязуюсь не разглашать и все. И это реально работало. И чсх не хулиганил никто. P.S. А Столлман хвастался что рутовые пароли всем раздавал. Вот такой он был загадочный чудак. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.06.2020, 16:26 |
|
Connection pool соединение от имени пользователя
|
|||
---|---|---|---|
#18+
mayton, Пользователей сейчас в районе 500, по REST API пока сказать сложно, ещё не внедрено. Функционал на REST реализован, думали обойтись собственной реализаций разграничения доступа к записям, админ требует использовать те, что реализованы в основном приложении на основе RLS... Думал с этим проблем не будет))) ... |
|||
:
Нравится:
Не нравится:
|
|||
12.06.2020, 18:13 |
|
Connection pool соединение от имени пользователя
|
|||
---|---|---|---|
#18+
mayton, С версией на PostgreSQL решили через Set Session Authorization, на ORA проблема.... ... |
|||
:
Нравится:
Не нравится:
|
|||
12.06.2020, 18:15 |
|
Connection pool соединение от имени пользователя
|
|||
---|---|---|---|
#18+
ALEX.86 mayton, С версией на PostgreSQL решили через Set Session Authorization, на ORA проблема.... Посмотри еще на CREATE CONTEXT https://docs.oracle.com/cd/B19306_01/server.102/b14200/statements_5002.htm Это такая мапа. Нетранзакционная. Привязанная к сессии. И ее можно использовать для хранения сеансовых переменных. Насчет аудита - сам подумай. Может что-то выйдет. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.06.2020, 19:39 |
|
Connection pool соединение от имени пользователя
|
|||
---|---|---|---|
#18+
Для безопасности можно попытаться использовать SET ROLE However you can satisfy your needs implementing roles. You provide privileges to the role and than can use SET ROLE statement during your session to switch between the roles with appropriate set of privileges. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.06.2020, 21:08 |
|
Connection pool соединение от имени пользователя
|
|||
---|---|---|---|
#18+
ALEX.86 mayton, С версией на PostgreSQL решили через Set Session Authorization, на ORA проблема.... В чем проблема сделать отдельный rest-java проект так и не сказал. По классике, со входом одним ПУБЛИЧНЫМ обезличенным юзверем. Это веб проект? Пусть админ зайдет на оракл ветку и ему там объяснят разницу. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.06.2020, 21:14 |
|
|
start [/forum/topic.php?all=1&fid=59&tid=2120785]: |
0ms |
get settings: |
3ms |
get forum list: |
5ms |
check forum access: |
1ms |
check topic access: |
1ms |
track hit: |
31ms |
get topic data: |
3ms |
get forum data: |
0ms |
get page messages: |
509ms |
get tp. blocked users: |
1ms |
others: | 307ms |
total: | 861ms |
0 / 0 |