powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Как производить авторизацию пользователей программы?
25 сообщений из 69, страница 1 из 3
Как производить авторизацию пользователей программы?
    #35052338
fatau
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте. Скажите пожалуйста как лучше производить авторизацию пользователей в клиентском приложении работающим с базой MS SQL 2005. Я вижу два варианта.
1. В БД создать таблицу пользователей типа Login, PassHash, UserFIO, Permissions....
и заводить пользователей в программе и сохранят их в этой таблице. Впринципе всё устраевает. Единственное что не устраивает что коннектится к базе они будут под одним юзером сиквел сервера (с достаточными правами) и пароль впринципе можно посмотреть в конфиг файле программы (хотя можно зашифровать)
2. Для каждого пользователя прогарммы создавать пользователя SQL Server с соотв. ролями для разгранечения прав доступа....
Подскажите какой вариант более предпочтителен?
Спасибо
...
Рейтинг: 0 / 0
Как производить авторизацию пользователей программы?
    #35052433
Фотография Ennor Tiegael
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fatauПодскажите какой вариант более предпочтителен?
Спасибо3. Включить сервер в домен, пользователей организовать в доменные группы и дать оным группам доступ в сиквел с соответствующими каждой из них правами.
...
Рейтинг: 0 / 0
Как производить авторизацию пользователей программы?
    #35052603
senn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ennor Tiegael fatauПодскажите какой вариант более предпочтителен?
Спасибо3. Включить сервер в домен, пользователей организовать в доменные группы и дать оным группам доступ в сиквел с соответствующими каждой из них правами.

гы) а если пользователи интранет (или не дай бог, интернет) и их ну никак в домен не включишь?

автору: имхо, предпочтительнее 1 способ, хотя все зависит от конкретных условий, которые Вы не описали.
...
Рейтинг: 0 / 0
Как производить авторизацию пользователей программы?
    #35052676
fatau
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
авторавтору: имхо, предпочтительнее 1 способ, хотя все зависит от конкретных условий, которые Вы не описали

Задача - разгаринчение прав пользовател яна ывполнение операций в программе (редактирование, просмотр) бд. и просто защита он несанкционного доступа к данным. Всё крутится в локальной сети. Компьютеры в домене, но возможно (в перспективе) подключение к серверу пользователей из других доменов.
...
Рейтинг: 0 / 0
Как производить авторизацию пользователей программы?
    #35052704
Bely
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fatau2. Для каждого пользователя прогарммы создавать пользователя SQL Server с соотв. ролями для разгранечения прав доступа....Не слушайте senn.
предпочтительнее 2 способ. Даже если будете писать интернет форум.
Первый - он проще в реализации, но правильный - второй.

Что касается способа 3 - то это практически то же, что и 2.
...
Рейтинг: 0 / 0
Как производить авторизацию пользователей программы?
    #35052763
guest_20040621
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> правильный - второй

Пара миллионов юзеров типа ни разу не пугает? ;) Дружище, поделитесь, пожалуйста, где Вы об этом прочли.
...
Рейтинг: 0 / 0
Как производить авторизацию пользователей программы?
    #35052822
fatau
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
guest_20040621> правильный - второй

Пара миллионов юзеров типа ни разу не пугает? ;) Дружище, поделитесь, пожалуйста, где Вы об этом прочли.

В моём случае пользователей будет максимум 50 человек
...
Рейтинг: 0 / 0
Как производить авторизацию пользователей программы?
    #35052840
Фотография Ennor Tiegael
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BelyЧто касается способа 3 - то это практически то же, что и 2.... но есть нюансы :).
...
Рейтинг: 0 / 0
Как производить авторизацию пользователей программы?
    #35052865
Leximus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fatauЗдравствуйте. Скажите пожалуйста как лучше производить авторизацию пользователей в клиентском приложении работающим с базой MS SQL 2005. Я вижу два варианта.
1. В БД создать таблицу пользователей типа Login, PassHash, UserFIO, Permissions....
и заводить пользователей в программе и сохранят их в этой таблице. Впринципе всё устраевает. Единственное что не устраивает что коннектится к базе они будут под одним юзером сиквел сервера (с достаточными правами) и пароль впринципе можно посмотреть в конфиг файле программы (хотя можно зашифровать)
2. Для каждого пользователя прогарммы создавать пользователя SQL Server с соотв. ролями для разгранечения прав доступа....
Подскажите какой вариант более предпочтителен?
Спасибо


Моё мнение как человека используещего и тот и другой метод такое, что всё в первую очередь зависит от ситуации. И у первого и у второго метода есть свои достатки и недостатки!
Например в первой ситуации можно создавать пользователей просто в таблице, и не заморачиваться насчёт лишних прав, но безопасность страдает. Так как узнав пароль пользователя под которым на самом деле клиент подключается, злоумышленник сможет посмотреть любые данные, если конечно всё не проверяется через хранимые процедуры а доступ к правам закрыт. Но также это плохо влияет на скорость, так как каждый раз помимо стандартных проверов прав надо будет находить пользователя и проверять его права на те или иные действия.

Второй вариант намой взгляд намного лучше, так как позваляет на высоком уровне разграничить права. Да и к томуже никто тебе не мешает использовать имя пользователя как ID сотрудника. Соответственно во всех таблица под кем человек подконектился, под тем у него и будут открываться или заполняться данные! А если не хочешь заморачиваться с правами, то можно роли в этой ситуации использовать.

Вообщем если польщователи через Web-интерфейс, то можно и 1 случай, но в другой ситуаци я рекомендую второй случай.

А если не секрет, что пишешь?
...
Рейтинг: 0 / 0
Как производить авторизацию пользователей программы?
    #35052907
guest_20040621
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> В моём случае пользователей будет максимум 50 человек

Это не оправдывает кривые решения.
...
Рейтинг: 0 / 0
Как производить авторизацию пользователей программы?
    #35053037
Bely
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
guest_20040621> правильный - второй

Пара миллионов юзеров типа ни разу не пугает? ;) Дружище, поделитесь, пожалуйста, где Вы об этом прочли.Не пугает.
Для пары миллионов юзеров, у которых будут типовые права - отдельные пользователи БД заводятся на группу.
В результате вся группа коннектится под одним пользователем.

Это скрещивание подхода 1 и 2, но основное то, что пользователь не сделает действий в базе больше того, что ему выдано. даже если узнает пароль, под которым он логинится в базу.
...
Рейтинг: 0 / 0
Как производить авторизацию пользователей программы?
    #35053151
guest_20040621
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> отдельные пользователи БД заводятся на группу

Вот, это уже ближе к теме. И таких групп - а следовательно, и пользователей СУБД - будет сильно (на порядки) меньше, чем пользователей. Ничего общего с "каждому юзеру по пользователю СУБД".
...
Рейтинг: 0 / 0
Как производить авторизацию пользователей программы?
    #35053187
Leximus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что мне нравится в наших форумах, дак это то что наши люди не только ответят и посоветуют, но ещё и сами пообсуждают, что другим будет над чем поразмышлять!

И за это всем спасибо!!! :-)
...
Рейтинг: 0 / 0
Как производить авторизацию пользователей программы?
    #35053215
Uridian
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
guest_20040621> Это не оправдывает кривые решения.
Если все пользователи уже являются членами домена, то третий вариант наименее кривой
...
Рейтинг: 0 / 0
Как производить авторизацию пользователей программы?
    #35053260
guest_20040621
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> Если все пользователи уже являются членами домена, то третий вариант наименее кривой

Пользователи домена, дружище, это мелкомягкое изобретение. Что само по себе не подразумевает его промышленного применения. Хотите делать на основе LDAP - не вопрос, хорошее решение для ограниченного применения. А вообще решений для нормальной авторизации куча: от OpenID до универсальных SSO с кучей готовых плагинов.
...
Рейтинг: 0 / 0
Как производить авторизацию пользователей программы?
    #35053282
Фотография Ennor Tiegael
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
guest_20040621Пользователи домена, дружище, это мелкомягкое изобретение.В исходном посте сразу же указывается, что речь идет о MSSQL 2005. Надо внимательнее читать.
...
Рейтинг: 0 / 0
Как производить авторизацию пользователей программы?
    #35053292
guest_20040621
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> В исходном посте сразу же указывается, что речь идет о MSSQL 2005. Надо внимательнее читать.

Спасибо, дружище, читать я умею и всегда делаю это внимательно. СУБД - это еще не повод пользоваться всеми костылями мелкомягких.
...
Рейтинг: 0 / 0
Как производить авторизацию пользователей программы?
    #35053331
guest_br
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
fatau
1. В БД создать таблицу пользователей типа Login, PassHash, UserFIO, Permissions....
и заводить пользователей в программе и сохранят их в этой таблице. Впринципе всё устраевает. Единственное что не устраивает что коннектится к базе они будут под одним юзером сиквел сервера (с достаточными правами) и пароль впринципе можно посмотреть в конфиг файле программы (хотя можно зашифровать)


Используется такой же принцип. Только в конфиге программы юзер сиквела с минимальными правами на чтение таблички systemuser, в которой лежит зашифрованный login&pass с достаточными правами.
...
Рейтинг: 0 / 0
Как производить авторизацию пользователей программы?
    #35053640
Bogdanov Andrey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
guest_brИспользуется такой же принцип. Только в конфиге программы юзер сиквела с минимальными правами на чтение таблички systemuser, в которой лежит зашифрованный login&pass с достаточными правами.Этот способ работает до тех пор, пока не найдется желающий все это взломать. Если у вас в общем доступе лежит информация позволяющая однозначно вычислить login&pass, то всегда найдется человек сумеющий их получить.
Но цель оправдывает средства. Если в вашей базе нет конфиденциальной и ценной информации, то можно вообще никаких ограничений прав не вводить.
...
Рейтинг: 0 / 0
Как производить авторизацию пользователей программы?
    #35053875
fatau
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
авторА если не секрет, что пишешь?

Пишу АРМ сотрудника отдела (Юристы). Сведения о судебных процессах, календарь посещений, статистика, печать отчётов в соответсвии с установленными формами, возможность прикрепления к каждому делу сканов документов соответствующих (теоретически количество их неограниченно). Кстати, почитал на форуме как лучше хранить изображения, пришёл к выводу что в базе в BLOB полях лучше. Но документы сильно жать не получится, должны быть достаточно читаемы, соотв размер не маленький будет. Всё равно хранить их в BLOB?
...
Рейтинг: 0 / 0
Как производить авторизацию пользователей программы?
    #35053889
Bely
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
guest_20040621> отдельные пользователи БД заводятся на группу

Вот, это уже ближе к теме. И таких групп - а следовательно, и пользователей СУБД - будет сильно (на порядки) меньше, чем пользователей. Ничего общего с "каждому юзеру по пользователю СУБД".Здесь все зависит от конкретного приложения.

1) Если в системе обозримое количество прав доступа, а пользователей много - то пользователей надо объединять в группы, а группе присваивать логин в БД.
Пример такого приложения - форум.

2) Если в системе настраиваемых прав доступа слишком много (например 1000 разнородных пермишенов + права пользователя на объекты системы), то в этом случае вариант групп вырождается в 1 пользователь = 1 группа прав доступа.
А значит ее проще сразу реализовывать как 1 пользователь = 1 логин в БД.
Пример такого приложени: ERP системы
При этом количество пользователей не должно быть слишком большим.

3) Более сложные системы (несколько серверов БД, очень много пользователей, разноообразие прав доступа) проще реализоваывать с помощью Application server-а.
Но эти случаи не так часто нужны, как иногда кажется...
...
Рейтинг: 0 / 0
Как производить авторизацию пользователей программы?
    #35054072
guest_20040621
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я Вам, Bely, по секрету скажу: незачем плодить полу-/недорешения. Решение, полученное в общем виде, будет отлично работать и в частных случаях. Кроме того, здесь обсуждается один из трех канонических уровней ограничения доступа, так что рассматривать его без двух остальных, как самодостаточное, - ошибка (или сильное упрощение - как больше нравится).
...
Рейтинг: 0 / 0
Как производить авторизацию пользователей программы?
    #35054356
авторЭто не оправдывает кривые решения.

Правило администрирования уч.зап. Назначай права группам, а не пользователям. Никакой мало мальски толковый админ не будет каждому юзеру права корректировать. Так и здесь имей ввиду группы они не для красоты придуманы таки.
...
Рейтинг: 0 / 0
Как производить авторизацию пользователей программы?
    #35054931
Гость74
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
>Решение, полученное в общем виде, будет отлично работать и в частных случаях

Вопрос только в стоимости решения. Далеко не всегда решение в общем виде будет дешевле частного решения. Утрирую, но тем не мменее:
ERP -система управления предприятием. Достаточно общее решение управления. Так давайте ставить ERP контор из 20 человек?

>Пользователи домена, дружище, это мелкомягкое изобретение. Что само по себе не подразумевает его промышленного применения

Если Вы на свои 700$ в день обслуживаете супер промышленные системы, то Вы - молодец. А я не молодец, т.к. работаю с мелкими конторами. Которые сидели и сидеть будут на "мелкомягких изобретениях". И у них все ПРЕКРАСНО работает.
А еще есть знакомая конторка в который молодой ненавистник мелкомагких решил поставить Линукс. Всем простым смертным пользователям. Он умный, отвественный, настроил все как полагается, вот только работать люди не смогли.
Вы можете, конечно, объявить людей всех быдлом, но это ничего не изменит.
У каждого решения СВОЯ область применения!
...
Рейтинг: 0 / 0
Как производить авторизацию пользователей программы?
    #35055227
guest_20040621
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> Вопрос только в стоимости решения

Именно. Вы считаете только деньги, которые нужно заплатить здесь и сейчас? А не хотите посчитать затраты, скажем, лет за пять?

> Далеко не всегда решение в общем виде будет дешевле частного решения

Если говорить о проектировании баз данных - всегда. База данных - это наиболее сложно изменяемая компонента любого софта. Стратегически правильно потратить больше денег и времени на этапе проектирования, чем регулярно заниматься переписыванием. "Решение в общем виде" не означает, что должна быть и реализация в общем виде. Иногда достаточно понимать, как и куда будет развиваться база данных, чтобы ее изменение не было фатальным для приложения. Возьмите это обсуждение: всего и требуется для задачи - сопоставить не пользователя приложения пользователю СУБД, а группу пользователей приложения пользователю СУБД. Простое решение? Да. Очевидное? Да. И это маленькое простое решение позволит строить одинаковым образом приложения любого масштаба, а не только для 50 пользователей, как хотелось автору. Хорошая структура данных тем и отличается от плохой, что в каждом конкретном случае правильно решается маленькая подзадача. 90% задач - это типовые задачи, где не нужно ничего изобретать.

> Так давайте ставить ERP контор из 20 человек?

Давайте. И это будет правильно. Проблема в том, что нет ERP решений приемлемой стоимости и приемлемого качества. Вы что же, думаете, что ERP - это такая страшная софтинка, которую непременно нужно внедрять пару лет? ;)

> Которые сидели и сидеть будут на "мелкомягких изобретениях"

У Вас есть дар предвидения? ;) Мне это не кажется очевидным.

> И у них все ПРЕКРАСНО работает

Они думают, что у них все прекрасно работает. Просто потому, что не знают, как это должно работать. Я уже говорил, что альтернативы учетному софту "из коробки" нет. Всем остальным задачам - есть.
.
> вот только работать люди не смогли

Что значит "не смогли"? Браузер, почтовый клиент, офис работают точно так же, как в форточках, даже если не париться и сделать все максимально просто, устанавливая софт из штатных репозиториев. Консоль использовать не обязательно. Какие задачи вызвали затруднение?

> У каждого решения СВОЯ область применения!

Imho это однобокая точка зрения. Уникальных задач не так много, как кажется на первый взгляд.
...
Рейтинг: 0 / 0
25 сообщений из 69, страница 1 из 3
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Как производить авторизацию пользователей программы?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]