![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Разграничение полномочий в приложении, работающем с БД [D7, MSSQL]
BlackCat © (2007-10-05 16:27:00)Доброго времени суток всем!
Пише приложение, работающее с БД на MS SQL.
Работать с ним будут несоклько человек, у которых разные права должны быть. При разработки структуры БД пришел к выводу, что буду использовать логины SQL-сервера.
Можно конечно оставить свойство Login Prompt включеным, чтобы запрашивался имя и пароль, но это как-то некрасиво будет. Хочу свое окно, чтобы там вводить имя и пароль, а вот как их проверить и пускать или не пускать пользователя, что-то дойти не могу. Может кто уже делал чего подобного, помогите, или просто поделитесь мыслями, потому что просто не представляю, как это всё сделать...
Jeer (2007-10-31 14:21:00) [21]
> Reindeer Moss Eater © (31.10.07 14:14) [41]
Но вот как средствами сервера модифицировать пользовательский интерфейс:))
Reindeer Moss Eater (2007-10-31 14:14:00) [22]Но как штатными средствами сервера задать следующее ограничение:
Вообще-то с формальной точки зрения, то это делается легко.
:)
Павел Калугин (2007-10-31 14:02:00) [23]> [34] MOA © (20.10.07 14:06)
Все понимаю.
Но как штатными средствами сервера задать следующее ограничение:
Вася Пупкин может смотреть только те документы которые создал сам
Петя Батарейкин - только то что создал Вася Пупкин и он сам
Федя Курочкин - документы созданные всеми пользователями
Jeer (2007-10-22 15:10:00) [24]
> MOA © (20.10.07 14:06) [34]
> MOA © (20.10.07 14:21) [35]
Значит ты еще мало каши кушал.
Во многих случаях, аудит бизнес-процессов и сопровождение - отделенные вещи. GRANT не поможет в реализации ограничений на стороне клиента, тем более в ограничении пользовательского интерфейса.
DeadMeat (2007-10-21 22:00:00) [25]> [37] Anatoly Podgoretsky © (21.10.07 11:48)
>
> > Как я понял, он хочет после Open(Login, Password) узнать,
>
> > что юзер не прошел аутентификацию.
>
> Будет исключение
Это понятно.
Пример:
создали новый логин с новой ролью с новыми правами. Чегото гдето забыли поставить (права на одну из процедур например) и в итоге при подключении просиходит исключение. Если его не обрабатывать, то получится, что при любой ошибке, программа будет считать, что не верные логин или пароль.
Я просто почему спрашиваю, у себя сделал так. Просто пишу общую фразу "ДОСТУП ЗАПРЕЩЕН". А если надо показать реальное сообщение, то при удержании клавиши Shift оно показывается. Но все таки хотелось бы узнать, как обработать именно ошибку, типа "не верный логин или пароль"?
Anatoly Podgoretsky (2007-10-21 11:48:00) [26]
> Как я понял, он хочет после Open(Login, Password) узнать,
> что юзер не прошел аутентификацию.
Будет исключение
DeadMeat (2007-10-21 10:24:00) [27]Я конечно не телепат, но подозреваю, что автор не совсем правильно сформулировал вопрос.
ИМХО, он имел ввиду другое.
Как я понял, он хочет после Open(Login, Password) узнать, что юзер не прошел аутентификацию. Т.е. как получить именно этот ответ от сервера?
Т.е. по сути:
> [3] Ega23 © (05.10.07 16:48)
Показал как решить проблему, осталась видать другая. Как узнать, что именно логин/пассворд не правильные, а не другая какая-либо ошибка.
Автор... я прав?
Если прав, то по почте пожалуйста бутылку отменного.... кефира. 2,5%
MOA (2007-10-20 14:21:00) [28]2Jeer
>Как только мы вводим понятия "системный администратор" и "администратор системы" - становится понятным, что правами управлять чужими правами придется делится.
А GRANT - этого не позволяет?
>Для такого случая вводится понятие "администратор системы", который пользуясь дополнительной системой аудита управляет пользователями в указанном разрезе.
И опять - GRANT -а не хватает....
>Для того, чтобы системный администратор не мог "безнаказанно" менять установки и "узнавать" пароли на вход в программную систему, пароли шифруются и запись подписывается хэш-функцией.
В интегрированной модели эти вопросы не стоят выеденного яйца.
MOA (2007-10-20 14:06:00) [29]Прошу прощения за запальчивость... :(
Блин, ребята. Я вижу только одну (1) причину юзать механизм аутентификации SQL - если предполагаются клиенты не-на Win. Тем более какой-то самопал.
Ну вот зачем заставлять юзеров помнить бесчисленные пароли к самопальным "типа секретным" АРМ-ам? Чтобы убедиться, что они будут их записывать на стикерах под монитором?
Ну ведь есть такие "роли". Ну ведь ими очень удобно пользоваться. Ну зачем, скажите бога ради, выдумывать своё - и думать, что выдумка круче чем разработка серъёзной фирмы (которая, конечно же маздай)?
Jeer (2007-10-19 15:32:00) [30]Я поясню, что имел в виду, говоря о дополнительной системе аудита пользователей.
Как только мы вводим понятия "системный администратор" и "администратор системы" - становится понятным, что правами управлять чужими правами придется делится.
В некоторых случаях (не таких уж редких) , системный администратор организационно не вправе заниматься раздачей прав пользователям с точки зрения бизнес-процессов.
Для такого случая вводится понятие "администратор системы", который пользуясь дополнительной системой аудита управляет пользователями в указанном разрезе.
Для того, чтобы системный администратор не мог "безнаказанно" менять установки и "узнавать" пароли на вход в программную систему, пароли шифруются и запись подписывается хэш-функцией.
Системщик же реализует необходимые системные права с точки зрения SQL-сервера или OS сервака (домена).
Lamer666 (2007-10-18 22:11:00) [31]Ну так создовая ЛОГ мы ведь выбираем конкретного пользователя из ДОМЕНА...или это не то же самое?
Anatoly Podgoretsky (2007-10-18 22:09:00) [32]> Lamer666 (18.10.2007 22:05:30) [30]
Права надо давать не логинам, а пользователям.
Lamer666 (2007-10-18 22:05:00) [33]
> Anatoly Podgoretsky © (18.10.07 20:26) [29]
Правильно ли я понял!
Я создаю в MSSQL->Security->Logins пользователя из ДОМЕНА,даю ему права... а потом он логинется на какойнибудь машине в СЕТИ и идет в MS SQL. MS SQL его узнает и дает те права, которые мы ему дали, правильно?
Anatoly Podgoretsky (2007-10-18 20:26:00) [34]> Lamer666 (18.10.2007 19:15:28) [28]
Зачем хранить пароли в базе, сервер это уже сделал.
Lamer666 (2007-10-18 19:15:00) [35]И так кто нибудь конкретный прммер ВЫЛОЖИт что как делать?
Jeer (2007-10-18 18:29:00) [36]
> zdm77 (18.10.07 17:38) [26]
?
Шифровальщиком:))
zdm77 (2007-10-18 17:38:00) [37]
> Jeer © (18.10.07 16:33) [24]
прошу прощения у автора, но тема интересная. А как шифровать пароли?
zdm77 (2007-10-18 17:36:00) [38]
> Sergey13 © (18.10.07 16:12) [23]
Своя форма и ЛОгин БД-между ними было "или", не правильно видимо выразился
Jeer (2007-10-18 16:33:00) [39]
> zdm77 (18.10.07 16:07) [22]
Шифруй пароль в базе + hash, чтоб не подменили.
Sergey13 (2007-10-18 16:12:00) [40]> [22] zdm77 (18.10.07 16:07)
Какая связь между "своей формой" и "логинами БД" и что тут неудобно?