powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Как авторизовать по ролям в БД в WEB-приложении?
12 сообщений из 12, страница 1 из 1
Как авторизовать по ролям в БД в WEB-приложении?
    #39088436
sp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Имеем вэб-приложение которое подключается к PG при помощи выделенной роли WebUser.
Создавать коннект с паролем и именем пользователя - не решение проблемы - это очень сильно тормозит работу - т.к. пул соединений используется неэффективно - т.к. соединение не постоянное, а запросил и отвалил.

Необходимо авторизовать пользователей в БД по ихнему имени и паролю в функции в PG и там уже от их имени выполнять запросы

как можно реализовать
...
Рейтинг: 0 / 0
Как авторизовать по ролям в БД в WEB-приложении?
    #39088575
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
spкак можно реализовать

Как вы хотите никак.
А так разграничивайте доступ на сервере приложений, а не на сервере БД. ;-)
...
Рейтинг: 0 / 0
Как авторизовать по ролям в БД в WEB-приложении?
    #39088602
crause
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
spкак можно реализовать

Заведи таблицу пользователей с логинами и паролями.
Между сервером бд и клиентом поставь сервис который будет проверять пользователя на наличие в базе. Сервис этот может работать от твоего WebUser.
...
Рейтинг: 0 / 0
Как авторизовать по ролям в БД в WEB-приложении?
    #39088611
qwwq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mad_nazgulspкак можно реализовать

Как вы хотите никак.
А так разграничивайте доступ на сервере приложений, а не на сервере БД. ;-)
осторожно интересуюсь:

1. что мешает дону "разграничивать доступ" хранимками ?
или у дона недержание хранимок ?

2. зачем вы используете непарные левые скобки ?
у вас проблемы с правыми ?
...
Рейтинг: 0 / 0
Как авторизовать по ролям в БД в WEB-приложении?
    #39089470
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
qwwqосторожно интересуюсь:

1. что мешает дону "разграничивать доступ" хранимками ?
или у дона недержание хранимок ?


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

qwwq2. зачем вы используете непарные левые скобки ?
у вас проблемы с правыми ?

Вас беспокоят скобочки?
Вы хотите поговорить об этом?
...
Рейтинг: 0 / 0
Как авторизовать по ролям в БД в WEB-приложении?
    #39090159
Нет меня
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
sp,

Месье знает толк в извращениях. Используйте на свой страх и риск:

1. Даете роли WebUser superuser'а, процедуры создаете с владельцем WebUser.
2. Передаете в каждую процедуру параметрами логин и пароль.
3. Внутри процедуры делаете проверку через системные таблицы пароля пользователя.
4. После проверки меняете контекст пользователя через SET SESSION AUTHORIZATION на нужного, в конце сбрасываете его через RESET SESSION AUTHORIZATION.
...
Рейтинг: 0 / 0
Как авторизовать по ролям в БД в WEB-приложении?
    #39090203
qwwq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mad_nazgulВсе равно нужно будет открывать соединение с пользователь с максимальными правами.

это неверное утверждение

верное звучало бы так
"с максимальными правами на исполнение всех хранимок, которые могут быть доступны [разным] пользователям WebUser"

если работ с таблицами [и\или обычными вьюхами] напрямую нет, а только через [set returning в т.ч.] хранимками. Или вьюхами, проверяющими (фильтрующими) права.

в тексте же самих хранимок проверять права по параметру "фейковый аккаунт" никто не запретит. и фильтровать вывод да и само исполнение.
...
Рейтинг: 0 / 0
Как авторизовать по ролям в БД в WEB-приложении?
    #39090685
YurikGL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А почему не работает такой вариант?
1) Авторизовать пользователя с логином-паролем СУБД
2) Доступ к данным через представления-функции
3) У функций указать, что "выполнять от имени создателя", где создатель - учетка с полными правами
4) У обычных пользователей доступ к таблицам убрать.
В этом случае у подключающегося пользователя не будет доступа к таблицам кроме как через представления и функуции.
...
Рейтинг: 0 / 0
Как авторизовать по ролям в БД в WEB-приложении?
    #39091064
westvovik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Кстати вот мы так и сделали в своем проекте, и все отлично работает! И очень удобно работать с view-ками, только вот есть проблемы с производительностью view, как проект разрастется, хотя тут смотря что будет во view

YurikGLА почему не работает такой вариант?
1) Авторизовать пользователя с логином-паролем СУБД
2) Доступ к данным через представления-функции
3) У функций указать, что "выполнять от имени создателя", где создатель - учетка с полными правами
4) У обычных пользователей доступ к таблицам убрать.
В этом случае у подключающегося пользователя не будет доступа к таблицам кроме как через представления и функуции.
...
Рейтинг: 0 / 0
Как авторизовать по ролям в БД в WEB-приложении?
    #39091092
qwwq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
westvovik,

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

<......,...> ((сс)лавров))
...
Рейтинг: 0 / 0
Как авторизовать по ролям в БД в WEB-приложении?
    #39091847
sp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я рад за некоторых коллег, которые успешно решили свои проблемы, но у нас задача стоит так:

- пользователи должны работать в БД под своими учетками при непосредственном доступе внутри сети, используя данные для анализа из таблиц в различных инструментах типа Excel и другие
- пользователи должны работать с вэб-приложением (но для вэб приложения критичным местом является количество количество соединений в пуле и создание соединений для каждого пользователя является критичным и не приемлемым из соображений производительности приложения)

у меня мысль была следующая:
- создаем прокси-функцию с правами достойного пользователя
- в ней находим пользователя и пароль и сверяем их (проблема осталась как из пароля юзера создать то что лежит где-то в БД и найдя то что осталось от пароля в БД сравнить)
- в случае успеха меняем контекст вызова на данного юзера, выполняем запрос и возвращаем результат
...
Рейтинг: 0 / 0
Как авторизовать по ролям в БД в WEB-приложении?
    #39092572
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
spя рад за некоторых коллег, которые успешно решили свои проблемы, но у нас задача стоит так:
- пользователи должны работать в БД под своими учетками при непосредственном доступе внутри сети, используя данные для анализа из таблиц в различных инструментах типа Excel и другие
- пользователи должны работать с вэб-приложением (но для вэб приложения критичным местом является количество количество соединений в пуле и создание соединений для каждого пользователя является критичным и не приемлемым из соображений производительности приложения)


Самое простое решение это разграничение прав пользователей на уровне сервера приложения, а не БД.

Можно и на БД ч/з сервер приложения.
Я видел такое решение:
Браузер - AD - SharePoint - MS SQL.
Т.е. как-то через SharePoint креденшелы передовались в MS SQL.
Как конкретно это делается, надо искать в MSDN.
Это видел 4 года назад.
Но это для линейки продуктов MS.

Так что выбор за вами ;-)
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Как авторизовать по ролям в БД в WEB-приложении?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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