powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Привязка роли пользователю при коннекте к БД
25 сообщений из 37, страница 1 из 2
Привязка роли пользователю при коннекте к БД
    #39227531
offsites
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день.
Подскажите, как это правильно реализовать, чтобы не пострадала безопасность.

В IBExpert есть возможность назначения прав роли, и привязка пользователя к этой роли. Но для работы такой связки при коннекте необходимо указывать логин, пароль, роль. Слишком сложно для еще вчерашних домохозяек. Можно ли каким нибудь образом сделать привязку роли по имеющимся логину и паролю при коннекте к БД?

Спасибо!
...
Рейтинг: 0 / 0
Привязка роли пользователю при коннекте к БД
    #39227543
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
привязку сделать нельзя.
но можешь предварительно выполнять отдельный коннект специальным "бесправным" юзером и смотреть какая роль грантована нужному юзеру
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Привязка роли пользователю при коннекте к БД
    #39227549
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
offsites,

если тебе не нужны роли, т тбе не нужны роли

роли были придуманны именно затем, чтобы у одного пользователя были разные профили безопасности

но если тебе не нужно этого, если тебе нужно чтобы у пользователя был только один набор разрешений - то не нужно для него и заводить "любимую" роль - просто давай все нужные разрешения ему напрямую и живи без ролей.
...
Рейтинг: 0 / 0
Привязка роли пользователю при коннекте к БД
    #39227644
Фотография DarkMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
offsites,

Для многопользовательских решений удобнее раздавать права роли, а потом роль грантовать пользователю (меньше записей в системных таблицах + намного меньше путаницы). К тому же пользователю можно назначить 2-3-100500 ролей.. Стандартное решение - при коннекте просить имя+пароль+давать возможность выбора из списка грантованных ролей.
...
Рейтинг: 0 / 0
Привязка роли пользователю при коннекте к БД
    #39227658
miwaonline
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DarkMasterСтандартное решение - при коннекте просить имя+пароль+давать возможность выбора из списка грантованных ролей.
... соответственно, если роль назначена только одна, твое приложение может подставить ее самостоятельно, не утруждая этим пользователя.
...
Рейтинг: 0 / 0
Привязка роли пользователю при коннекте к БД
    #39227703
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miwaonline,

в тройке определить эту роль после коннекта и установить её, без последующего переконнекта. См. оператор SET ROLE
...
Рейтинг: 0 / 0
Привязка роли пользователю при коннекте к БД
    #39227891
offsites
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Симонов Денис,

а в 2.5 аналог SET ROLE имеется?

Хоть убейте, не могу понять, почему есть пользователи, есть роли, есть привязка между ними, но нифига не работает (пробую в IBExpert)! Нужно еще роль задавать явно, или выкручиваться. Может есть способ все же средствами IBExpert'a это сделать?

Пользователей много. Не хочется каждому человеку вбивать одни и те же права на каждую таблицу. Разбить их на группы-роли и потом только добавлять юзверя в группу. Но и мучить пользователей, который по 5 минут ищут букву на клавиатуре, указанием еще и роли (группы), не хочется.

Если по человечески привязка не работает, тогда алгоритм вижу таким:

1. Коннектимся логином паролем
2. В событии ib_connect каким-то макаром делаем SET ROLE = ( SELECT UserRoleValue FROM MyTableUsers WHERE UserLogin = RDB$CURRENT_USER)

Такое бывает?
...
Рейтинг: 0 / 0
Привязка роли пользователю при коннекте к БД
    #39227898
A-rioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
offsites Разбить их на группы-роли и потом только добавлять юзверя в группу.
роли - это НЕ группы, а строго ПРОТИВОПОЛОЖНАЯ группам вещь

группы нужны чтобы складывать права.

а роли - чтобы вычитать права.

повторяю:

Ariochесли тебе не нужны роли, то тебе не нужны роли

роли были придуманны именно затем, чтобы у одного пользователя были разные профили безопасности

но если тебе не нужно этого, если тебе нужно чтобы у пользователя был только один набор разрешений - то не нужно для него и заводить "любимую" роль - просто давай все нужные разрешения ему напрямую и живи без ролей.

Если тебе нужны роли как просто шаблоны прав, именованные контейнеры готовых полномочий - не вопрос, пользуйся ими так.

И сделай три stored procedure

1. получив имя пользователя и имя группыроли процедура, проверив права на группу у пользователя, перебирает все права группы и добавляет такие же права пользователю. Это чисто служебная функция.
2. получив имя пользователя удаляет у него все права, потом перебирает все назначенные ему группыроли и для каждой вызывает процедуру 1. Это будет функция "назначить права пользователю Вася Пупкин"
3. получив имя группыроли перебирает всех ей назначенный пользователей и вызывает функцию 2. Это будет "триггер", который ты будешь вызывать после каждого изменения прав у какоу-нибудь группыроли.

Впрочем, устраивать такой abuse ролям имеет смысл только если ты им права назначаешь "врукопашную" через что-то типа IBExpert.
Если же ты это делаешь из своей самописной админки сделаннйо для твоей программы - то роли тут вообще не нужны, а в качестве замены групп - именованных контейнеров для готовых наборов прав - вполне сгодятсья специальные пользователи тиа template$user1, template$user2, template$user3 и т.д.
...
Рейтинг: 0 / 0
Привязка роли пользователю при коннекте к БД
    #39227902
offsites
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Отлично, чувствую что мне подходит последний вариант, только я не совсем понял о чем идет речь )))

[quot A-rioch]offsites вполне сгодятсья специальные пользователи тиа template$user1, template$user2, template$user3 и т.д.

Кто такие эти специальные пользователи?
Я идею понял так, что через самописную админку нужно сделать "карту" прав различным группам пользователей, и при назначении им прав этой группы программа сама будет эту "карту" прав заполнять пользователю (ну чтобы каждому галочки руками не тыкать). Так?
...
Рейтинг: 0 / 0
Привязка роли пользователю при коннекте к БД
    #39227903
MaratIsk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
A-riochoffsites Разбить их на группы-роли и потом только добавлять юзверя в группу.
роли - это НЕ группы, а строго ПРОТИВОПОЛОЖНАЯ группам вещь

группы нужны чтобы складывать права.

а роли - чтобы вычитать права.

повторяю:

Ariochесли тебе не нужны роли, то тебе не нужны роли

роли были придуманны именно затем, чтобы у одного пользователя были разные профили безопасности

но если тебе не нужно этого, если тебе нужно чтобы у пользователя был только один набор разрешений - то не нужно для него и заводить "любимую" роль - просто давай все нужные разрешения ему напрямую и живи без ролей.

Если тебе нужны роли как просто шаблоны прав, именованные контейнеры готовых полномочий - не вопрос, пользуйся ими так.

И сделай три stored procedure

1. получив имя пользователя и имя группыроли процедура, проверив права на группу у пользователя, перебирает все права группы и добавляет такие же права пользователю. Это чисто служебная функция.
2. получив имя пользователя удаляет у него все права, потом перебирает все назначенные ему группыроли и для каждой вызывает процедуру 1. Это будет функция "назначить права пользователю Вася Пупкин"
3. получив имя группыроли перебирает всех ей назначенный пользователей и вызывает функцию 2. Это будет "триггер", который ты будешь вызывать после каждого изменения прав у какоу-нибудь группыроли.

Впрочем, устраивать такой abuse ролям имеет смысл только если ты им права назначаешь "врукопашную" через что-то типа IBExpert.
Если же ты это делаешь из своей самописной админки сделаннйо для твоей программы - то роли тут вообще не нужны, а в качестве замены групп - именованных контейнеров для готовых наборов прав - вполне сгодятсья специальные пользователи тиа template$user1, template$user2, template$user3 и т.д.

какой бред ))))))))))))))))))))))
извините, я тут так хохотался
...
Рейтинг: 0 / 0
Привязка роли пользователю при коннекте к БД
    #39227904
MaratIsk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Привязка роли пользователю при коннекте к БД
    #39227905
MaratIsk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Привязка роли пользователю при коннекте к БД
    #39227906
MaratIsk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
не стесняйтесь читать правильные источники
на ibase.ru есть статья о роли ролей ))))))))))) в firebird
в панель параметров соединения можно запихнуть все что заблагорассудится
...
Рейтинг: 0 / 0
Привязка роли пользователю при коннекте к БД
    #39227910
MaratIsk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DarkMasteroffsites,

Для многопользовательских решений удобнее раздавать права роли, а потом роль грантовать пользователю (меньше записей в системных таблицах + намного меньше путаницы). К тому же пользователю можно назначить 2-3-100500 ролей.. Стандартное решение - при коннекте просить имя+пароль+давать возможность выбора из списка грантованных ролей.

после этого тему можно было бы считать исчерпанной
но с это туевой хучей безграмотных советчиков...
...
Рейтинг: 0 / 0
Привязка роли пользователю при коннекте к БД
    #39227972
offsites
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MaratIsk,

Да уж, кого слушать... Читать маны это конечно обязательно.
Но больше интересует все же совет бывалых о правильном подходе, НО БЕЗ указания пользователем роли. Ну не знаю как с точки зрения программирования, но с точки зрения пользователя это полный бред... По хорошему, для доступа к приватной зоне и небольшом количестве пользователей достаточно одного пароля. Ну ладно, добавили для верности еще и логин. Но роль указывать - уже избыточно. По-моему на КПП сторож должен знать что Иван Иванов не директор.
...
Рейтинг: 0 / 0
Привязка роли пользователю при коннекте к БД
    #39227973
offsites
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вопрос мне кажется простым на самом деле. На него сможет ответить тот кто заботится о дружественном интерфейсе и доходил в реализации до конца.

Я же, в ходе обсуждения, пока склоняюсь лишь к одной версии: реализацию групп делать программно. Программно назначать права пользователю при добавлении в группу. Карта прав группы будет лежать в отдельной таблице.
...
Рейтинг: 0 / 0
Привязка роли пользователю при коннекте к БД
    #39227975
MaratIsk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
offsitesMaratIsk,

Да уж, кого слушать... Читать маны это конечно обязательно.
Но больше интересует все же совет бывалых о правильном подходе, НО БЕЗ указания пользователем роли. Ну не знаю как с точки зрения программирования, но с точки зрения пользователя это полный бред... По хорошему, для доступа к приватной зоне и небольшом количестве пользователей достаточно одного пароля. Ну ладно, добавили для верности еще и логин. Но роль указывать - уже избыточно. По-моему на КПП сторож должен знать что Иван Иванов не директор.

ты можешь понять, что по-твоему неправильно?
в Oracle поьзователю нет необходимости указывать свою роль как и в MS SQL
но это особенности СУБД как и диалекты SQL
и это надо принимать за данность
или писать свою СУБД ))))))))))))))))))))))))))))))))
...
Рейтинг: 0 / 0
Привязка роли пользователю при коннекте к БД
    #39227977
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
offsitesПользователей много. Не хочется каждому человеку вбивать одни и те же права
на каждую таблицу.
Скрипты придумали уже весьма давно. Не собираешься же ты каждому пользователю натыкивать
права в эксперте индивидуально?..
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Привязка роли пользователю при коннекте к БД
    #39227978
MaratIsk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovoffsitesПользователей много. Не хочется каждому человеку вбивать одни и те же права
на каждую таблицу.
Скрипты придумали уже весьма давно. Не собираешься же ты каждому пользователю натыкивать
права в эксперте индивидуально?..


он собирается )))))))))))))))))))))))
...
Рейтинг: 0 / 0
Привязка роли пользователю при коннекте к БД
    #39227979
offsites
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Понял. Это особенности СУБД.
Вопрос решен социальной инженерией - персоналу было объяснено что это необходимо для безопасности базы. Все согласны. Делаем с ролями.
Всем спасибо!
...
Рейтинг: 0 / 0
Привязка роли пользователю при коннекте к БД
    #39227982
MaratIsk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
offsitesПонял. Это особенности СУБД.
Вопрос решен социальной инженерией - персоналу было объяснено что это необходимо для безопасности базы. Все согласны. Делаем с ролями.
Всем спасибо!

похоже - это твоя первая программа
поздравляю с дебютом!
удачи!
...
Рейтинг: 0 / 0
Привязка роли пользователю при коннекте к БД
    #39227986
offsites
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MaratIsk,

Программа не первая. Раньше реализацию доступа к базе делал на уровне логин пароль в таблице. Защита не имела значения. Пароли гуляли в открытом виде. Сейчас просто более серьезный подход нужен, важна защита данных (средствами Firebird). Далее фаервол и сервер под замок. Вроде так правильно защищать базы Firebird )
...
Рейтинг: 0 / 0
Привязка роли пользователю при коннекте к БД
    #39228001
stelvic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
offsitesMaratIsk,

Программа не первая. Раньше реализацию доступа к базе делал на уровне логин пароль в таблице. Защита не имела значения. Пароли гуляли в открытом виде. Сейчас просто более серьезный подход нужен, важна защита данных (средствами Firebird). Далее фаервол и сервер под замок. Вроде так правильно защищать базы Firebird )
Если у пользователя не больше одной роли, то ему вполне можно сделать также - логин, пароль. (Для него это будет выглядеть также) А роль ты сам добавишь программно. Как это сделать? Если сервер до тройки, то смотри:Мимопроходящийпривязку сделать нельзя.
но можешь предварительно выполнять отдельный коннект специальным "бесправным" юзером и смотреть какая роль грантована нужному юзеру
...
Рейтинг: 0 / 0
Привязка роли пользователю при коннекте к БД
    #39228100
fdbm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
offsites... для работы такой связки при коннекте необходимо указывать логин, пароль, роль. Слишком сложно для еще вчерашних домохозяек.
Спасибо!
А что мешает, при успешном подключении к БД, сохранять имя пользователя, сервер, путь к БД, порт, или еще некую информацию по вашему усмотрению, а также роль , например, в ini-файле? При следующем запуске программы "вчерашним домохозяйкам" не придется искать по 5 минут букву на клавиатуре. Ввел пароль, Enter и работай.
...
Рейтинг: 0 / 0
Привязка роли пользователю при коннекте к БД
    #39228101
fdbm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Как пример.
...
Рейтинг: 0 / 0
25 сообщений из 37, страница 1 из 2
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Привязка роли пользователю при коннекте к БД
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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