Модераторы: LSD
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Авторизация пользователей, Как грамотно сделать? 
:(
    Опции темы
Colloseum
Дата 20.9.2007, 11:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 71
Регистрация: 4.7.2006

Репутация: нет
Всего: нет



Собственно как вообще организовать управление пользователями в учетной программе(Программа клиент к БД с MS SQL Server).

Я смотрю в самом MSSQL богатые возможности по управлению доступом, но не хочется возится с большим количеством вариантов.

Собственно интересует сам процесс авторизации в корпоративных приложениях.
Т.е. как я предполагаю нужно создать таблицу для хранения пользователей и их прав (права предполагаю оформить в виде строки значение которой будет названием разрешенного модуля пользователю.
Но возникает проблема, значения ведь в таблице будут всего лиш данными БД, и как же получается все обращения пользователя будут фильтроваться на клиенте передаваться через одного суперпользователя БД?! Это есть нехорошо.
PM MAIL   Вверх
batigoal
Дата 21.9.2007, 08:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Нелетучий Мыш
****


Профиль
Группа: Участник Клуба
Сообщений: 6423
Регистрация: 28.12.2004
Где: Санктъ-Петербургъ

Репутация: 1
Всего: 151



Речь идет двух- или трехзвенном приложении? Если трехзвенка - права можно раздавать на уровне application-сервера.

Цитата(Colloseum @  20.9.2007,  12:41 Найти цитируемый пост)
права предполагаю оформить в виде строки значение которой будет названием разрешенного модуля пользователю.

Более логичным будет сделать таблицу со списком модулей, которая будет связана с таблицей пользователей (или ролей) связью N-N.

Добавлено через 1 минуту и 52 секунды
Цитата(Colloseum @  20.9.2007,  12:41 Найти цитируемый пост)
все обращения пользователя будут фильтроваться на клиенте передаваться через одного суперпользователя БД?! 

Он, кстати, не обязан быть СУПЕРпользователем. Напротив, это может быть пользователь с правами на выполнение одной-единственной процедуры - проверки имени/пароля.


--------------------
"Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли)
ЖоржЖЖ
PM WWW   Вверх
Akina
Дата 21.9.2007, 08:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 13
Всего: 454



Я не понимаю... есть Win-аутрентификация, есть родная аутентификация SQL-сервера - а ты собираешься создать свою? но ЗАЧЕМ?


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Colloseum
Дата 21.9.2007, 11:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 71
Регистрация: 4.7.2006

Репутация: нет
Всего: нет



Цитата(Akina @ 21.9.2007,  08:37)
Я не понимаю... есть Win-аутрентификация, есть родная аутентификация SQL-сервера - а ты собираешься создать свою? но ЗАЧЕМ?

Я опираюсь на родную аутентификацию SQL сервера, т.к. не хочу связываться с местными админами.
Попытаюсь объяснить на примере.
Предположим есть три таблицы т1, т2 и т3. 
Как понимаю юзеру1 нужно редактировать т1 и только читать т2, юзеру2 читать все таблицы только, юзеру3 редактировать т1 и только считывать их т2 и читать т.3. ...
Получается имеем огромное количество комбинаций и при добавлении каждого пользователя буду пыхтеть назначая права.
Если я напишу к примеру 7-мь ехешников редакторов то мне необходимо распределить  пользователя только для ехе файлов. В результате говоря упрощенно создаю талицу на две колонки "Юзер" и "Ехе файл" и уже при помощи 8 формочки назначаю пользователя.

Но чтоб добраться до этой самой таблицы нужно уже зарегистрироваться на сервере? Причем каждому пользователю. Вот и возникает новый вопрос что ж мне делать такую систему:
1.Внешний пользователь вводит свои пасс и логин -> 2. Клиент при помощи зашитого в себя пароля с полными правами логинится на сервере -> 3. Клиент производит запрос к табличке с правами -> 4. Получает список разрешенных модулей.
Но ведь и все модули будут по этой схеме работать что-ли?!
PM MAIL   Вверх
Anark1
Дата 22.9.2007, 16:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 622
Регистрация: 15.12.2006
Где: RF -> Moscow

Репутация: 2
Всего: 11



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


--------------------
Enjoy yourself, still you can...;)

user posted image

user posted image
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Общие вопросы по базам данных"
LSD
Zloxa

Данный форум предназначен для обсуждения вопросов о базах данных не попадающих под тематику других форумов:

  • вопросам по СУБД для которых нет отдельных подфорумов
  • вопросам которые затрагивают несколько разных СУБД (например проблема выбора)
  • инструменты для работы с СУБД
  • вопросы проектирования БД
  • теоретически вопросы о СУБД

Данный форум не предназначен для:

  • вопросов о поиске разлиных БД (если не понимаете чем БД отличается от СУБД то: а) вам не сюда; б) Google в помощь)
  • обсуждения проблем с доступом к СУБД из различных ЯП (для этого есть соответсвующие форумы по каждому ЯП)
  • обсуждения проблем с написание SQL запросов, для этого есть форум Составление SQL-запросов
  • просьб о написании курсовой, реферата и т.п., для этого есть Центр помощи или фриланс биржа
  • объявлений о найме специалистов, для этого есть раздел Объявления о найме специалистов

Если вы не соблюдаете эти правила, не удивляйтесь потом не найдя свою тему/сообщение. ;)


Полезные советы:

При написании сообщения постарайтесь дать теме максимально понятное название. В теме максимально подробно опишите проблему. Если применимо укажите: название базы данных и версии (MySQL 4.1, MS SQL Server 2000 и т.п.); используемых язык программирования; способа доступа (ADO, BDE и т.д.); сообщения об ошибках.

Для вставки кода используйте теги [code=sql] [/code].

Литературу по базам данных можно поискать здесь.

Действия модераторов можно обсудить здесь.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, LSD, Zloxa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | СУБД, общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1653 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.