Форум: "Прочее";
Текущий архив: 2006.10.01;
Скачать: [xml.tar.bz2];
ВнизКто как делает Разграничение доступа в программе? Найти похожие ветки
← →
Tab (2006-09-11 16:33) [0]Есть программа работающая с базой(firebird).
Требуется сделать обычного пользователя для добавления/просмотра данных и Администратора для редактирования удаления и т.д. Как это лучше реализовать? Пока пришло на ум такое:
Имена пользователей и пароли хранятся в файле рядом с прогой. При удалении прога не открывается и требует вернуть ей файл с имена и паролями. Файл с паролями можно будет заново сгенерировать отдельной программой.
← →
Сергей М. © (2006-09-11 16:37) [1]И как вся эта свистопляска с "файлом рядом с прогой" вяжется с "сделать..пользователя" ?
← →
Desdechado © (2006-09-11 16:44) [2]CREATE ROLE
GRANT ... TO
REVOKE ... FROM
← →
Tab (2006-09-11 16:51) [3]
> И как вся эта свистопляска с "файлом рядом с прогой" вяжется
> с "сделать..пользователя" ?
сделать пользователя не в базе а на доступ к программе.
← →
Сергей М. © (2006-09-11 16:54) [4]Ну и с какого боку здесь firebird ?
← →
Tab (2006-09-11 16:59) [5]Хорошо, пусть будет просто программа, в которой надо сделать доступ по имени и паролю. Как это сделать.
← →
Сергей М. © (2006-09-11 17:02) [6]
> программа, в которой надо сделать доступ по имени и паролю
> Как это сделать
Ну как ? Просто взять и сделать)
Где и как хранить (и хранить ли вообще) имя и пароль - это совсем другой вопрос, не имеющий отношение к "программа .. как сделать"
← →
Tab (2006-09-11 17:07) [7]
> Ну как ? Просто взять и сделать)Где и как хранить (и хранить
> ли вообще) имя и пароль - это совсем другой вопрос, не имеющий
> отношение к "программа .. как сделать"
Сразу все стало понятно. :)
Я не прошу куски кода и т.д. Просто технология так сказать.
Все таки буду рад если кто-то поделиться своим опытом
← →
Zeqfreed © (2006-09-11 17:15) [8]Конкатенировать строки содержащие имя и пароль, видоизменить их простеньким алгоритмом (например, обратить и проксорить), вычислить хеш (какой больше понравится) и сохранить. При входе в программе запрашивать имя и пароль, проделывать с ними все то же самое и сравнивать хеши.
P.S. Это никак (практически) не защитит от влома, но предоставит какой-никакой механизм авторизации.
← →
StriderMan © (2006-09-11 17:21) [9]
> Zeqfreed © (11.09.06 17:15) [8]
> P.S. Это никак (практически) не защитит от влома
плакалъ :))))))
ЗЫ: если челу ВЛОМ, то от этого точно ничто не защитит :)
← →
Zeqfreed © (2006-09-11 17:22) [10]> [9] StriderMan © (11.09.06 17:21)
Вот так вот смешно у меня залипает клавиатура :)
← →
Курдль © (2006-09-11 17:39) [11]
> StriderMan © (11.09.06 17:21) [9]
>
> > Zeqfreed © (11.09.06 17:15) [8]
> > P.S. Это никак (практически) не защитит от влома
Это точно! За такую прогу могут и вломить! :(
← →
Kolan © (2006-09-11 17:49) [12]
> Это точно! За такую прогу могут и вломить! :(
Бред какой :(
За то что в Windows Есть пользователи разного типа тоже нодо вламить?
← →
MsGuns © (2006-09-11 17:56) [13]Самый надежный способ - сделать 2 приложения: одно для просмотра, второе для редактирования.
← →
GRAND25 © (2006-09-11 18:03) [14]А не проще ли завести пользователя в саму БД (файрбёрд же ж!) и... не делать больше ничего! Аппликуха пускай при запуске всего-то лишь попробует приконнектиться к базе - без правильной комбинации логин/пароль коннект к базе не пройдет. А если коннект к базе не прошел, то какого еще делать тогда в этой проге? MainForm.Close и до свидания.
← →
Курдль © (2006-09-11 18:12) [15]
> Kolan © (11.09.06 17:49) [12]
> Бред какой :(
Если серьезно, не вижу проблем в описанном задании.
Нет сомнений, что данные о ролях и пользователях должны храниться в какой-то базе (XML, TXT, хоть oracle). Если они должны быть защищены - закодировать алгоритмом, обеспечивающим необходимую степень защиты, хоть PGP.
← →
Ломброзо © (2006-09-11 18:27) [16]Информация о ролях той или иной базы данных должна храниться в хранилище СУБД, и об этих ролях никто, кроме разработчика и администратора знать не должен. Этот подход упрощает архитектуру доступа к БД и оченно экономит ресурсы, если включен Connection Pooling.
Информация о ролях и пользователях приложения должна храниться в защищённом хранилище промышленного типа, навроде LDAP или Active Directory или на крайняк в виде учётных записей групп и пользователей ОС линейки NT,
А маппировать роли БД на учетные записи домена/хоста, выполнять аутентификацию и авторизацию должен сервер приложений.
← →
Курдль © (2006-09-11 18:32) [17]
> Ломброзо © (11.09.06 18:27) [16]
Зачот! :) Заявитель топика от СУБД открещивается, а ты ему про LDAP и active directory!
← →
Ломброзо © (2006-09-11 18:34) [18]Курдль © (11.09.06 18:32) [17]
Какая разница. Вся безопасность в .NET построена на подсистеме аутентификации и авторизации NT
← →
GRAND25 © (2006-09-11 18:38) [19].NET пусть идет очень-очень далеко. Да и в контексте обсуждаемой проблемы это ни к чему вообще. Но, в любом случае, и так, чисто по жизни, .NET идет...
← →
Tab (2006-09-11 19:03) [20]
> Если серьезно, не вижу проблем в описанном задании.Нет сомнений,
> что данные о ролях и пользователях должны храниться в какой-
> то базе (XML, TXT, хоть oracle). Если они должны быть защищены
> - закодировать алгоритмом, обеспечивающим необходимую степень
> защиты, хоть PGP.
ну вот лежит у меня зашифрованный txt. Я его взял да удалил (специально или нарочно). Что должна будет сделать программа?
← →
Алхимик © (2006-09-11 19:08) [21]>
> ну вот лежит у меня зашифрованный txt. Я его взял да удалил
> (специально или нарочно). Что должна будет сделать программа?
Программа должна сообщить что требуется повторная инсталяция
← →
Zeqfreed © (2006-09-11 19:10) [22]> [20] Tab (11.09.06 19:03)
"The programme was unable to find one of the required components, reinstaling the application may fix the problem".
← →
parovoZZ © (2006-09-11 21:30) [23]Здесь есть кое-что по сабжу
http://ibase.ru/devinfo/treedb2.htm
← →
Petr V. Abramov © (2006-09-11 22:30) [24]> Tab
есть у меня библиотечка, где права раздаются на уровне пунктов меню, но при этом юзер, зайдя через любую утилиту, не увидит больше, чем через приложение. В моем личном пользовании, могу пгодать (ну согласовав с парой мемберов форума)
← →
Некто © (2006-09-11 22:58) [25]Дык всё в файрберде есть. Заводишь юзеров с соответствующими правами в СУБД. В программе делаешь окошко для авторизации и обработку ошибок доступа непривилегированных пользователей.
ЗЫ: Если с проблемы удалением ещё понять можно, то почему непривилегированным пользователям нельзя редактировать данные?
ЗЫЫ: Наверняка есть решение проще. Нет смысла городить огород обрисованный в [0].
← →
evvcom © (2006-09-12 08:57) [26]> [24] Petr V. Abramov © (11.09.06 22:30)
у меня тоже есть. Аукцион? :p)
← →
StriderMan © (2006-09-12 09:04) [27]
> Некто © (11.09.06 22:58) [25]
> Дык всё в файрберде есть. Заводишь юзеров с соответствующими
> правами в СУБД
Дык работа с БД я так понял это не весь фунционал проги. Например надо сделать право на разворачивание на весь экран. БД тут вообще ни при чем.
есть такой подход: все функции (в т.ч. нажатия на кнопки, клики мышью) проходят через единый обработчик функций. там и права разруливаются.
← →
evvcom © (2006-09-12 09:08) [28]> [27] StriderMan © (12.09.06 09:04)
> Например надо сделать право на разворачивание на весь экран.
А это еще нафига? Права надо настраивать на доступ к тем или иным данным, а не на удобство пользования программой. С ума сойти! Скоро начнут настраивать права на поход в туалет в рабочее время.
← →
StriderMan © (2006-09-12 09:20) [29]
> evvcom © (12.09.06 09:08) [28]
я ж для примера привел. А права вовсе не всегда на доступ к данным, а еще на пользование некоторыми не связанными с данными функциями.
Уверяю вас!!
← →
parovoZZ © (2006-09-12 11:21) [30]Ну да. Чтобы запустить программу, один пароль, чтобы подключиться к базе - другой. В MultiView такое реализовано.
← →
Курдль © (2006-09-12 11:45) [31]
> GRAND25 © (11.09.06 18:38) [19]
> .NET пусть идет очень-очень далеко.
Забавное заявление. Особенно если учесть, что .NET идет не просто так, а побеждая все и вся на своем пути. Во всяком случае пока ничего лучшего не изобрели.
← →
Курдль © (2006-09-12 11:49) [32]
> Некто © (11.09.06 22:58) [25]
> Дык всё в файрберде есть. Заводишь юзеров с соответствующими
> правами в СУБД. В программе делаешь окошко для авторизации
> и обработку ошибок доступа непривилегированных пользователей.
А вот интересно, в FB отсалась фишка от IB, когда берешь файл .db, переносишь его на комп, где администратор IB имеет права DBA и делаешь с базой, находящейся в указанном файле все, что хочешь?
← →
Sergey13 © (2006-09-12 13:06) [33]> [32] Курдль © (12.09.06 11:49)
В двойке вроде (я ее не смотрел, релиза вроде нет еще) собирались исправить. В полторашке все так и есть.
← →
Desdechado © (2006-09-12 13:06) [34]Курдль © (12.09.06 11:49) [32]
Да, осталась. Поэтому защита заключается не только в раздаче прав на данные, а и в раздаче прав на ключи к серверной, на доступ по терминалу и т.п.
Защита - понятие комплексное.
evvcom © (12.09.06 09:08) [28]
Иногда надо разделять доступ на пункты меню, например, или отдельные кнопки. Не потому, что нельзя по-другому, а потому, что нефиг светить 200 режимов, из которых только 1 не ругается "у вас нет прав на доступ к таблице такой-то". Лучше их вообще погасить.
← →
evvcom © (2006-09-12 14:43) [35]> [34] Desdechado © (12.09.06 13:06)
Пункты меню я бы отнес все-таки в конечном итоге к работе с данными. У нас так и есть. Если юзеру не дали полномочий на какой-то объект, на который в конце концов завязан пункт меню, то этого пункта юзер даже не увидит. Я это прекрасно понимаю... :)
И кнопочки дизэйблятся или не показываются, если действия, с которыми они связаны, юзеру не разрешены. Но разворот окна во весь экран в зависимости от каких-то полномочий - это чересчур! Даже для примера. Пример надо было реальный приводить, а не надуманный.
Страницы: 1 вся ветка
Форум: "Прочее";
Текущий архив: 2006.10.01;
Скачать: [xml.tar.bz2];
Память: 0.54 MB
Время: 0.023 c