Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 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.012 c
15-1158041335
pasha_golub
2006-09-12 10:08
2006.10.01
Сервисы видео трансляции


2-1158162044
AlexWlad
2006-09-13 19:40
2006.10.01
null-значение параметра процедуры/функции с типом Variant


2-1158225782
Монг
2006-09-14 13:23
2006.10.01
messagedig


1-1156153706
DelphiLexx
2006-08-21 13:48
2006.10.01
Создать отменить и восстановить для редактора


2-1157522821
YOjik
2006-09-06 10:07
2006.10.01
Ошибка при выгрузке dll





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский