powered by simpleCommunicator - 2.0.30     © 2024 Programmizd 02
Map
Форумы / Java [игнор отключен] [закрыт для гостей] / Connection pool соединение от имени пользователя
32 сообщений из 32, показаны все 2 страниц
Connection pool соединение от имени пользователя
    #39968422
ALEX.86
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый вечер. Подскажите пожайлуста в какую сторону капать.

Есть приложение spring boot, spring jpa, hibernate.
Необходимо организовать разграничение доступом на уровне СУБД ORACLE.

Т.е у меня сейчас пул соединений от одного пользователя. Как в существующем стеке уйти от пула, и ходить в,БД отимени подключившегося пользователя?
...
Рейтинг: 0 / 0
Connection pool соединение от имени пользователя
    #39968454
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ALEX.86
Добрый вечер. Подскажите пожайлуста в какую сторону капать.

Есть приложение spring boot, spring jpa, hibernate.
Необходимо организовать разграничение доступом на уровне СУБД ORACLE.

Т.е у меня сейчас пул соединений от одного пользователя. Как в существующем стеке уйти от пула, и ходить в,БД отимени подключившегося пользователя?


Не надо так делать. Пользы никакой, зато куча проблем.

А так. Надо будет создавать для каждой сессии DataSource, EntityManagerFactory, TransactionManager.
При этом скорее всего по дороге отвалиться Spring Data Jpa.
Т.е. работу с БД надо будет делать на чистом Hibernate.

В общем постановка задачи странная, которая создает огромную дыру в безопасности.
...
Рейтинг: 0 / 0
Connection pool соединение от имени пользователя
    #39968472
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В Оракле была реализована подобная технология. Надо книжку достать почитать щас не помню.
Кажется через CONNECT THROUGH. И в статистике сеансов по юзеру отображался user/proxy_user.
...
Рейтинг: 0 / 0
Connection pool соединение от имени пользователя
    #39968484
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,
Мудрено очень и админ не даст
...
Рейтинг: 0 / 0
Connection pool соединение от имени пользователя
    #39968486
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не мудрёно а специфично.

Вообще мне кажется автор не тем занят. Если он хочет аудита событий то это делается по другому.
...
Рейтинг: 0 / 0
Connection pool соединение от имени пользователя
    #39968490
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,
Если в sql.ru это никто не реализовывал, то это мудрено))
...
Рейтинг: 0 / 0
Connection pool соединение от имени пользователя
    #39968493
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я думаю что 100 раз реализовывали. Просто выглядит так. Автор приходит в форум и говорит. Хочу птичьего молока.

Все спрашивают. А какого? А молоко коровы подойдет?

А потом в конце оказалось что ему надо было вообще не птичьего молока а мышиного сала.
...
Рейтинг: 0 / 0
Connection pool соединение от имени пользователя
    #39968495
ALEX.86
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ситуация такая - есть "большой" проект, вся бизнес - логика которого реализована на PL/SQL безопасность и разграничение доступа к записям таблиц в СУБД на RLS.. К проекту сделан REST API на JAVA стеке, который я указал. REST API использует для доступа рул от имени одного пользователя и разграничения доступа для "текущего" пользователя не используются...

В PostgreSQL есть "set session authorization", а вот как это реализовать применительно к ORA и текущего стека JAVA не поняно(
...
Рейтинг: 0 / 0
Connection pool соединение от имени пользователя
    #39968500
ALEX.86
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
То есть есть варианты сохранив стек, использовать не пул соединений, а отдельное для каждого запроса пользователя, от его имени?
...
Рейтинг: 0 / 0
Connection pool соединение от имени пользователя
    #39968501
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Давай я тебе просто дам ссылку на книгу которую я читал и там эта процедура описана.

Oracle Database 10g. Создание эффективной системы безопасности
...
Рейтинг: 0 / 0
Connection pool соединение от имени пользователя
    #39968508
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не очень понимаю, что значит уйти. При соединение указывать правильный имя пользователя и пароль и все. Другое дело, что смысла в пуле тогда особого не видно, кроме случая, что приложение полностью state-less и негде хранить соединение между Http-запросами. IMHO

Но лучше читать в доке. Я особо с таким не разбирался

https://docs.oracle.com/cd/B10501_01/java.920/a96654/connpoca.htm
...
Рейтинг: 0 / 0
Connection pool соединение от имени пользователя
    #39968511
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ALEX.86,

>К проекту сделан REST
Не верно. Нужно отдельный проект.
...
Рейтинг: 0 / 0
Connection pool соединение от имени пользователя
    #39968514
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ALEX.86
Ситуация такая - есть "большой" проект, вся бизнес - логика которого реализована на PL/SQL безопасность и разграничение доступа к записям таблиц в СУБД на RLS.. К проекту сделан REST API на JAVA стеке, который я указал. REST API использует для доступа рул от имени одного пользователя и разграничения доступа для "текущего" пользователя не используются...

В PostgreSQL есть "set session authorization", а вот как это реализовать применительно к ORA и текущего стека JAVA не поняно(


Ну тут Java + Spring явно лишнее.

Если пишите, на Oracle, то и продолжайте писать на Oracle . :-)
...
Рейтинг: 0 / 0
Connection pool соединение от имени пользователя
    #39968515
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ALEX.86,
>от имени одного пользователя
Именно. Изучите апекс от оракла.
У вас будет один юзверь как в апексе.
Ему грантуете роли юзверей.
...
Рейтинг: 0 / 0
Connection pool соединение от имени пользователя
    #39968517
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ALEX.86
То есть есть варианты сохранив стек, использовать не пул соединений, а отдельное для каждого запроса пользователя, от его имени?

Как в апексе. Пул остается. Вход под одним юзверем. Аутентификация не оракла а отдельная при входе на инфу из пула по логину.
...
Рейтинг: 0 / 0
Connection pool соединение от имени пользователя
    #39968521
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ALEX.86,
Грубо представьте что у вас большая субд уровня предприятия. И есть 20 отделов со своими ИС.
Значит это 20 проектов отдельных. А не куча мала.
...
Рейтинг: 0 / 0
Connection pool соединение от имени пользователя
    #39968524
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мне кажется в топике есть два смысла. Два антагонизма.
- Экономия ресурсов (пулы и сокеты и процессы ora* на сервере)
- Безопасность и аудит (отслеживание каждого действия на уровне БД)
...
Рейтинг: 0 / 0
Connection pool соединение от имени пользователя
    #39968526
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,
Да.
Третий смысл архитектура. "Не мешать все в кучу".
...
Рейтинг: 0 / 0
Connection pool соединение от имени пользователя
    #39968529
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
- Экономия ресурсов (пулы и сокеты и процессы ora* на сервере)

от Shared Server до как минимум 3-х вариантов пулов в современных версиях Oracle. AFAIK
mayton

- Безопасность и аудит (отслеживание каждого действия на уровне БД)

+ возможность хранения состояния на сервере

настроили один раз нужные параметры сессии юзера и дальше они юзаются
да в принципе, любые пакеты с переменными уровня пакета
если есть legacy код в таких пакетах, "тупо" использовать пул - не лучшая идея

+ целый ряд специфических для СУБД фич
Row-Level Security и пр.
...
Рейтинг: 0 / 0
Connection pool соединение от имени пользователя
    #39968537
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid Kudryavtsev

от Shared Server до как минимум 3-х вариантов пулов в современных версиях Oracle. AFAIK

Точно. Спасибо. Про shared_mode я как-то и забыл. Редкая штука.
...
Рейтинг: 0 / 0
Connection pool соединение от имени пользователя
    #39968597
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Мне кажется в топике есть два смысла. Два антагонизма.
- Экономия ресурсов (пулы и сокеты и процессы ora* на сервере)


ИМХО тут скорее не экономия ресурсов, а экономия времени.
Т.к. быстрее отдать готовое и настроенное соединение. Чем каждый раз поднимать соединение пр обращении к БД.
И да, нагрузка на БД будет меньше при пуле.

mayton

- Безопасность и аудит (отслеживание каждого действия на уровне БД)


ИМХО насчет безопасности можно поспорить.
Т.к. давать человеку напрямую обращаться к БД, даже с ограниченными правами, не очень безопасно.
...
Рейтинг: 0 / 0
Connection pool соединение от имени пользователя
    #39968604
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mad_nazgul
Т.к. давать человеку напрямую обращаться к БД, даже с ограниченными правами, не очень безопасно.

Тут если в фразе заменить БД на удалённый доступ к системе X - то смысл будет тот-же.

Даже http-протокол давать опасно. Ну по крайней мере админы сетевого периметра на предприятиях
так считают. Я ржу над ними но ... пускай. Это их епархия. Хотя-бы трафик отгоняют лишний.
...
Рейтинг: 0 / 0
Connection pool соединение от имени пользователя
    #39968607
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
mad_nazgul
Т.к. давать человеку напрямую обращаться к БД, даже с ограниченными правами, не очень безопасно.

Тут если в фразе заменить БД на удалённый доступ к системе X - то смысл будет тот-же.

Даже http-протокол давать опасно. Ну по крайней мере админы сетевого периметра на предприятиях
так считают. Я ржу над ними но ... пускай. Это их епархия. Хотя-бы трафик отгоняют лишний.


Смотря куда доступ.
Если по SSH к терминалу - то да.
Если по HTTP к приложению, то скорее всего ничего страшного. Главное чтобы в SQL запросы передавались через параметры, а не через конкатенацию строк. :-)
...
Рейтинг: 0 / 0
Connection pool соединение от имени пользователя
    #39968627
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mad_nazgul

ИМХО тут скорее не экономия ресурсов, а экономия времени.
Т.к. быстрее отдать готовое и настроенное соединение. Чем каждый раз поднимать соединение пр обращении к БД.

Один раз за рабочий день при входе в прикладную систему поднял и используешь, при чем тут экономия времени и нагрузка, не очень понятно.
...
Рейтинг: 0 / 0
Connection pool соединение от имени пользователя
    #39968629
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mad_nazgul

Если по SSH к терминалу - то да.

В начале 90-х, приобретали электронную почту. Работа была устроена таким образом:
1. провайдер выдавал unix login и пароль
2. по модему заходили на провайдера под login и пароль на сервер
3. читали и писали почту
В 90-х было безопасно, в 2020-ом юные подаваны-любители Unix'а cделали так, что стало не безопасно. Прогресс не стоит на месте.

До этого, у меня был доступ на ЕС ЭВМ которая обслуживала ВЦ работающий на оборону. Проблем с безопасностью так же не наблюдалось. Операционная система ПДО СВМ (аналог VMS от IBM)

Может проблема не в технологиях, а в очумелых ручках? Админ не может / не умеет нормально безопасность на сервере настроить?
...
Рейтинг: 0 / 0
Connection pool соединение от имени пользователя
    #39968630
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ALEX.86
Ситуация такая - есть "большой" проект, вся бизнес - логика которого реализована на PL/SQL безопасность и разграничение доступа к записям таблиц в СУБД на RLS.. К проекту сделан REST API на JAVA стеке, который я указал. REST API использует для доступа рул от имени одного пользователя и разграничения доступа для "текущего" пользователя не используются...

Автор дай немного цифр. Сколько всего пользователей в БД? Сколько активно в среднем в день?

И сколько из них будут дёргать твой REST API одновременно ?

Эта информация поможет нам в топике сориентироваться по ресурсам.
...
Рейтинг: 0 / 0
Connection pool соединение от имени пользователя
    #39968632
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid Kudryavtsev

В 90-х было безопасно

Если все пользователи системы - люди из ведомства. То там безопасность по другому решалась.
Просто подписал бумажку что дескыть обязуюсь не разглашать и все. И это реально работало.
И чсх не хулиганил никто.

P.S. А Столлман хвастался что рутовые пароли всем раздавал. Вот такой он был загадочный чудак.
...
Рейтинг: 0 / 0
Connection pool соединение от имени пользователя
    #39968661
ALEX.86
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mayton,

Пользователей сейчас в районе 500, по REST API пока сказать сложно, ещё не внедрено.
Функционал на REST реализован, думали обойтись собственной реализаций разграничения доступа к записям, админ требует использовать те, что реализованы в основном приложении на основе RLS... Думал с этим проблем не будет)))
...
Рейтинг: 0 / 0
Connection pool соединение от имени пользователя
    #39968663
ALEX.86
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mayton,

С версией на PostgreSQL решили через Set Session Authorization, на ORA проблема....
...
Рейтинг: 0 / 0
Connection pool соединение от имени пользователя
    #39968679
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ALEX.86
mayton,

С версией на PostgreSQL решили через Set Session Authorization, на ORA проблема....


Посмотри еще на CREATE CONTEXT

https://docs.oracle.com/cd/B19306_01/server.102/b14200/statements_5002.htm

Это такая мапа. Нетранзакционная. Привязанная к сессии. И ее можно использовать для хранения сеансовых переменных.
Насчет аудита - сам подумай. Может что-то выйдет.
...
Рейтинг: 0 / 0
Connection pool соединение от имени пользователя
    #39968698
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для безопасности можно попытаться использовать 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.
...
Рейтинг: 0 / 0
Connection pool соединение от имени пользователя
    #39968701
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ALEX.86
mayton,

С версией на PostgreSQL решили через Set Session Authorization, на ORA проблема....

В чем проблема сделать отдельный rest-java проект так и не сказал.
По классике, со входом одним ПУБЛИЧНЫМ обезличенным юзверем.
Это веб проект?
Пусть админ зайдет на оракл ветку и ему там объяснят разницу.
...
Рейтинг: 0 / 0
32 сообщений из 32, показаны все 2 страниц
Форумы / Java [игнор отключен] [закрыт для гостей] / Connection pool соединение от имени пользователя
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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