| 
 | 
| 
 
Своя подсистема безопасности для трёхзвенки 
 | 
|||
|---|---|---|---|
| 
 #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&msg=39629626&tid=1547236]:  | 
    0ms | 
get settings:  | 
    11ms | 
get forum list:  | 
    13ms | 
check forum access:  | 
    6ms | 
check topic access:  | 
    6ms | 
track hit:  | 
    62ms | 
get topic data:  | 
    10ms | 
get forum data:  | 
    2ms | 
get page messages:  | 
    59ms | 
get tp. blocked users:  | 
    2ms | 
| others: | 240ms | 
| total: | 411ms | 

| 0 / 0 | 

На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даете согласие с использованием данных технологий.