Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.10.01;
Скачать: CL | DM;

Вниз

Кто как делает Разграничение доступа в программе?   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.56 MB
Время: 0.044 c
15-1157860374
vrem
2006-09-10 07:52
2006.10.01
Грузины, чего там у вас?


2-1158138732
Sirus
2006-09-13 13:12
2006.10.01
Очистка DBGRID-а


5-1140178910
mr. Den
2006-02-17 15:21
2006.10.01
Что не так с default ???


2-1157966493
Извращенец
2006-09-11 13:21
2006.10.01
Округление в Дельфе


3-1153389366
NGPOL
2006-07-20 13:56
2006.10.01
Удаления в дочерней таблице