|
|
|
Своя подсистема безопасности для трёхзвенки
|
|||
|---|---|---|---|
|
#18+
Здравствуйте! Поставили такую задачу - разработать веб-приложение с БД на PostgreSQL (на самом деле неважно, какая СУБД). Я отвечаю за разработку БД. Веб-сервер общается с БД только посредством функций. Руководитель сказал сделать такой вариант подсистемы безопасности, что все пользователи - "виртуальные" - т.е. это просто записи в таблице T_USER, а вовсе не реальные пользователи СУБД. Также существует таблица прав для каждого пользователя, т.е. пользователи и права - это на уровне приложения, а не на уровне СУБД. Веб-сервер будет общаться с СУБД от имени одной фиксированной учётки, а функции уже будут разруливать от имени какого пользователя работает приложение - вот это и есть тот вопрос, который мне не понятен. Как функция узнает, от имени какого "виртуального" пользователя она выполняется - это что, в каждую функцию передавать ID_USER ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2018, 07:06 |
|
||
|
Своя подсистема безопасности для трёхзвенки
|
|||
|---|---|---|---|
|
#18+
Я вам не Димон., каша из непонятно чего... нет такого термина "виртуальный пользователь" есть пользователь системы и пользователь субд. все пользователи системы имеют логин/пароль которые хранятся в базе и отвечает за авторизацию пользователя системы серверное приложение, которое обращается к базе с логином/паролём "пользователя базы" (вполне возможно что это может быть и root) серверное приложение разруливает правами кто и что может выполнять в базе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2018, 08:14 |
|
||
|
Своя подсистема безопасности для трёхзвенки
|
|||
|---|---|---|---|
|
#18+
Я вам не Димон., Тут думать ничего не надо. Просто перейти в ветку программистов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2018, 08:49 |
|
||
|
Своя подсистема безопасности для трёхзвенки
|
|||
|---|---|---|---|
|
#18+
вадясерверное приложение разруливает правами кто и что может выполнять в базе. Поясняю. Юзер вводит логин и пароль - например vasya и 12345. Веб сервер вызывает функцию f_check_user('vasya','12345') и она возвращает допустим =0 то есть такой пользователь с таким паролем найден в таблице T_USER нашей БД. Далее веб-сервер должен вызывать другие функции этой БД, но в контексте пользователя vasya. Как это реализовать, если пользователь vasya - это не пользователь СУБД, а просто запись в таблице T_USER ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2018, 08:58 |
|
||
|
Своя подсистема безопасности для трёхзвенки
|
|||
|---|---|---|---|
|
#18+
Я вам не Димон.вадясерверное приложение разруливает правами кто и что может выполнять в базе. Поясняю. Юзер вводит логин и пароль - например vasya и 12345. Веб сервер вызывает функцию f_check_user('vasya','12345') и она возвращает допустим =0 то есть такой пользователь с таким паролем найден в таблице T_USER нашей БД. Далее веб-сервер должен вызывать другие функции этой БД, но в контексте пользователя vasya. Как это реализовать, если пользователь vasya - это не пользователь СУБД, а просто запись в таблице T_USER ? Как руководитель скажет, так и реализовывать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2018, 09:00 |
|
||
|
Своя подсистема безопасности для трёхзвенки
|
|||
|---|---|---|---|
|
#18+
Egoр, ладно, посмеялись и будет. Ваши варианты решения? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2018, 09:02 |
|
||
|
Своя подсистема безопасности для трёхзвенки
|
|||
|---|---|---|---|
|
#18+
Я вам не Димон.Egoр, ладно, посмеялись и будет. Ваши варианты решения? Это ты смешной. У прогеров этот вопрос давно решен. Через библиотеки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2018, 09:08 |
|
||
|
Своя подсистема безопасности для трёхзвенки
|
|||
|---|---|---|---|
|
#18+
Я вам не Димон., По хорошему тут БД не причем. Т.е. надо сделать нормальную трехзвенную архитектуру. Где доступ и роли для работы с БД будут определяться на сервере приложений. Там же можно будет сделать логгирование действий пользователя. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2018, 09:13 |
|
||
|
Своя подсистема безопасности для трёхзвенки
|
|||
|---|---|---|---|
|
#18+
Petro123У прогеров этот вопрос давно решен. Через библиотеки. Можно будет ссылочку на статью? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2018, 09:15 |
|
||
|
Своя подсистема безопасности для трёхзвенки
|
|||
|---|---|---|---|
|
#18+
Тему в нужном ЯП заведи. И вообще, это вопрос тебя как разраба бд не касается. Это бэк программист веб сервера решает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2018, 09:19 |
|
||
|
Своя подсистема безопасности для трёхзвенки
|
|||
|---|---|---|---|
|
#18+
Petro123, Отвечать один *** я буду. Секьюрнось системы на мне. Надеюсь на понимание. Может всё-таки у кого-нибудь есть ссылка на материал по теме? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2018, 09:23 |
|
||
|
Своя подсистема безопасности для трёхзвенки
|
|||
|---|---|---|---|
|
#18+
Я вам не Димон.Веб-сервер будет общаться с СУБД от имени одной фиксированной учётки, а функции уже будут разруливать от имени какого пользователя работает приложение В веб будет обезличенный пользователь без прав DML и в функциях не разруливают обычно. Вне бд разруливают. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2018, 09:24 |
|
||
|
Своя подсистема безопасности для трёхзвенки
|
|||
|---|---|---|---|
|
#18+
Я вам не Димон.Отвечать один *** я буду.дак ты начальник))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2018, 09:25 |
|
||
|
Своя подсистема безопасности для трёхзвенки
|
|||
|---|---|---|---|
|
#18+
Я вам не Димон.Далее веб-сервер должен вызывать другие функции этой БД, но в контексте пользователя vasya. Как это реализовать, если пользователь vasya - это не пользователь СУБД, а просто запись в таблице T_USER ?не веб-сервер, а серверное приложение - 2 звено для конкретного пользователя vasya и должно вызвать нужное, то что разрешено этому васи ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2018, 09:37 |
|
||
|
Своя подсистема безопасности для трёхзвенки
|
|||
|---|---|---|---|
|
#18+
Petro123В веб будет обезличенный пользователь без прав DML и в функциях не разруливают обычно. Вне бд разруливают.+100500 mad_nazgulПо хорошему тут БД не причем. Т.е. надо сделать нормальную трехзвенную архитектуру. Где доступ и роли для работы с БД будут определяться на сервере приложений. Там же можно будет сделать логгирование действий пользователя.+100500 тут ужо всё сказано , добавить нечего ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2018, 09:38 |
|
||
|
Своя подсистема безопасности для трёхзвенки
|
|||
|---|---|---|---|
|
#18+
Я вам не Димон.... Как функция узнает, от имени какого "виртуального" пользователя она выполняется - это что, в каждую функцию передавать ID_USER ? Да, в таком варианте, каждая функция, работающая с user-specific данными должна принимать user_id или его аналог. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2018, 09:42 |
|
||
|
Своя подсистема безопасности для трёхзвенки
|
|||
|---|---|---|---|
|
#18+
Я вам не Димон.Руководитель сказал сделать такой вариант подсистемы безопасности, что все пользователи - "виртуальные" - т.е. это просто записи в таблице T_USER, а вовсе не реальные пользователи СУБД. Собственно, речь почти наверняка шла о другом. И поскольку это непонятно, то лучше взять самоотвод, чем делать халтуру. В трехзвенной системе управление правами осуществляет сервер приложений, БД в этом вообще не участвует. А задача руководителя, скорее всего, включала в себя разработку схемы данных, удобной для хранения и использования информации о пользователях и их правах доступа. То есть таблица пользователей, организационная структура (отделы, руководители), кадровая информация (должности, период работы), группы доступа, роли, сценарии. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2018, 09:46 |
|
||
|
Своя подсистема безопасности для трёхзвенки
|
|||
|---|---|---|---|
|
#18+
Ответы в специфичном для скл.ру стиле. Как можно минимум инфы по существу. Если все юзеры будут ходить под одним БД-эккаунтом, то неизбежно придется везде передавать или откуда-то зачитывать ID юзера из T_USER. Допустим перед обращением к к-л серверному запросу делать выборку с ID юзера, на предмет, имеет ли этот юзер право на выполнение этого конкретного запроса. Если запрос/функция внутри должны знать этот ID (например чтобы отсечь "чужие" записи), то неизбежно надо как-то передавать этот ID в запрос, ф-цию или ХП. пысы: чудес не бывает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2018, 09:55 |
|
||
|
Своя подсистема безопасности для трёхзвенки
|
|||
|---|---|---|---|
|
#18+
L_argoОтветы в специфичном для скл.ру стиле. Как можно минимум инфы по существу. Если все юзеры будут ходить под одним БД-эккаунтом, то неизбежно придется везде передавать или откуда-то зачитывать ID юзера из T_USER. Допустим перед обращением к к-л серверному запросу делать выборку с ID юзера, на предмет, имеет ли этот юзер право на выполнение этого конкретного запроса. Если запрос/функция внутри должны знать этот ID (например чтобы отсечь "чужие" записи), то неизбежно надо как-то передавать этот ID в запрос, ф-цию или ХП. Ну да, я об этом и писал, что придётся таскать ID_USER при каждом вызове функции. Просто я думал, что есть какие-то другие методы, более правильные, а тут начали троллить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2018, 10:05 |
|
||
|
Своя подсистема безопасности для трёхзвенки
|
|||
|---|---|---|---|
|
#18+
L_argoОтветы в специфичном для скл.ру стиле. Как можно минимум инфы по существу. Если все юзеры будут ходить под одним БД-эккаунтом, то неизбежно придется везде передавать или откуда-то зачитывать ID юзера из T_USER. Допустим перед обращением к к-л серверному запросу делать выборку с ID юзера, на предмет, имеет ли этот юзер право на выполнение этого конкретного запроса. Если запрос/функция внутри должны знать этот ID (например чтобы отсечь "чужие" записи), то неизбежно надо как-то передавать этот ID в запрос, ф-цию или ХП. пысы: чудес не бывает.это разруливается намного раньше тот же вася видит только то что ему ререшено и это показывает серверное приложение. и все действия , которые разрешены васе обеспечивает серверное приложение. вася просто не может сделать то что ему не разрешено и база здесь только хранилище разрешений конкретному юзеру ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2018, 10:09 |
|
||
|
Своя подсистема безопасности для трёхзвенки
|
|||
|---|---|---|---|
|
#18+
Я вам не Димон.Ну да, я об этом и писал, что придётся таскать ID_USER при каждом вызове функции. Просто я думал, что есть какие-то другие методы, более правильные, а тут начали троллить.не надо никуда таскать если пришёл запрос серверному приложению - оно однозначно знает от кого пришёл запрос. уже в самой форме/странице отражены те варианты , которые доступны для данного юзера/роли ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2018, 10:12 |
|
||
|
Своя подсистема безопасности для трёхзвенки
|
|||
|---|---|---|---|
|
#18+
Я вам не Димон.а тут начали троллить.ты больше разговаривай с мембером с одним сообщением. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2018, 10:14 |
|
||
|
Своя подсистема безопасности для трёхзвенки
|
|||
|---|---|---|---|
|
#18+
вадяне надо никуда таскать если пришёл запрос серверному приложению - оно однозначно знает от кого пришёл запрос. уже в самой форме/странице отражены те варианты , которые доступны для данного юзера/ролиКак не надо таскать ? А как с БД зачитать набор только разрешенных записей ? Все равно для этого придется этот ID куда-то передать: в запрос, ХП, ф-цию. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2018, 10:40 |
|
||
|
Своя подсистема безопасности для трёхзвенки
|
|||
|---|---|---|---|
|
#18+
L_argo, Тема про трехзвенку. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2018, 10:57 |
|
||
|
|

start [/forum/topic.php?fid=33&tid=1547236]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
155ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
64ms |
get tp. blocked users: |
2ms |
| others: | 9ms |
| total: | 272ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...