|
|
|
Как производить авторизацию пользователей программы?
|
|||
|---|---|---|---|
|
#18+
Здравствуйте. Скажите пожалуйста как лучше производить авторизацию пользователей в клиентском приложении работающим с базой MS SQL 2005. Я вижу два варианта. 1. В БД создать таблицу пользователей типа Login, PassHash, UserFIO, Permissions.... и заводить пользователей в программе и сохранят их в этой таблице. Впринципе всё устраевает. Единственное что не устраивает что коннектится к базе они будут под одним юзером сиквел сервера (с достаточными правами) и пароль впринципе можно посмотреть в конфиг файле программы (хотя можно зашифровать) 2. Для каждого пользователя прогарммы создавать пользователя SQL Server с соотв. ролями для разгранечения прав доступа.... Подскажите какой вариант более предпочтителен? Спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.01.2008, 12:16 |
|
||
|
Как производить авторизацию пользователей программы?
|
|||
|---|---|---|---|
|
#18+
fatauПодскажите какой вариант более предпочтителен? Спасибо3. Включить сервер в домен, пользователей организовать в доменные группы и дать оным группам доступ в сиквел с соответствующими каждой из них правами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.01.2008, 12:36 |
|
||
|
Как производить авторизацию пользователей программы?
|
|||
|---|---|---|---|
|
#18+
Ennor Tiegael fatauПодскажите какой вариант более предпочтителен? Спасибо3. Включить сервер в домен, пользователей организовать в доменные группы и дать оным группам доступ в сиквел с соответствующими каждой из них правами. гы) а если пользователи интранет (или не дай бог, интернет) и их ну никак в домен не включишь? автору: имхо, предпочтительнее 1 способ, хотя все зависит от конкретных условий, которые Вы не описали. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.01.2008, 13:11 |
|
||
|
Как производить авторизацию пользователей программы?
|
|||
|---|---|---|---|
|
#18+
авторавтору: имхо, предпочтительнее 1 способ, хотя все зависит от конкретных условий, которые Вы не описали Задача - разгаринчение прав пользовател яна ывполнение операций в программе (редактирование, просмотр) бд. и просто защита он несанкционного доступа к данным. Всё крутится в локальной сети. Компьютеры в домене, но возможно (в перспективе) подключение к серверу пользователей из других доменов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.01.2008, 13:30 |
|
||
|
Как производить авторизацию пользователей программы?
|
|||
|---|---|---|---|
|
#18+
fatau2. Для каждого пользователя прогарммы создавать пользователя SQL Server с соотв. ролями для разгранечения прав доступа....Не слушайте senn. предпочтительнее 2 способ. Даже если будете писать интернет форум. Первый - он проще в реализации, но правильный - второй. Что касается способа 3 - то это практически то же, что и 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.01.2008, 13:35 |
|
||
|
Как производить авторизацию пользователей программы?
|
|||
|---|---|---|---|
|
#18+
> правильный - второй Пара миллионов юзеров типа ни разу не пугает? ;) Дружище, поделитесь, пожалуйста, где Вы об этом прочли. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.01.2008, 13:44 |
|
||
|
Как производить авторизацию пользователей программы?
|
|||
|---|---|---|---|
|
#18+
guest_20040621> правильный - второй Пара миллионов юзеров типа ни разу не пугает? ;) Дружище, поделитесь, пожалуйста, где Вы об этом прочли. В моём случае пользователей будет максимум 50 человек ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.01.2008, 13:56 |
|
||
|
Как производить авторизацию пользователей программы?
|
|||
|---|---|---|---|
|
#18+
BelyЧто касается способа 3 - то это практически то же, что и 2.... но есть нюансы :). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.01.2008, 14:01 |
|
||
|
Как производить авторизацию пользователей программы?
|
|||
|---|---|---|---|
|
#18+
fatauЗдравствуйте. Скажите пожалуйста как лучше производить авторизацию пользователей в клиентском приложении работающим с базой MS SQL 2005. Я вижу два варианта. 1. В БД создать таблицу пользователей типа Login, PassHash, UserFIO, Permissions.... и заводить пользователей в программе и сохранят их в этой таблице. Впринципе всё устраевает. Единственное что не устраивает что коннектится к базе они будут под одним юзером сиквел сервера (с достаточными правами) и пароль впринципе можно посмотреть в конфиг файле программы (хотя можно зашифровать) 2. Для каждого пользователя прогарммы создавать пользователя SQL Server с соотв. ролями для разгранечения прав доступа.... Подскажите какой вариант более предпочтителен? Спасибо Моё мнение как человека используещего и тот и другой метод такое, что всё в первую очередь зависит от ситуации. И у первого и у второго метода есть свои достатки и недостатки! Например в первой ситуации можно создавать пользователей просто в таблице, и не заморачиваться насчёт лишних прав, но безопасность страдает. Так как узнав пароль пользователя под которым на самом деле клиент подключается, злоумышленник сможет посмотреть любые данные, если конечно всё не проверяется через хранимые процедуры а доступ к правам закрыт. Но также это плохо влияет на скорость, так как каждый раз помимо стандартных проверов прав надо будет находить пользователя и проверять его права на те или иные действия. Второй вариант намой взгляд намного лучше, так как позваляет на высоком уровне разграничить права. Да и к томуже никто тебе не мешает использовать имя пользователя как ID сотрудника. Соответственно во всех таблица под кем человек подконектился, под тем у него и будут открываться или заполняться данные! А если не хочешь заморачиваться с правами, то можно роли в этой ситуации использовать. Вообщем если польщователи через Web-интерфейс, то можно и 1 случай, но в другой ситуаци я рекомендую второй случай. А если не секрет, что пишешь? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.01.2008, 14:05 |
|
||
|
Как производить авторизацию пользователей программы?
|
|||
|---|---|---|---|
|
#18+
> В моём случае пользователей будет максимум 50 человек Это не оправдывает кривые решения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.01.2008, 14:15 |
|
||
|
Как производить авторизацию пользователей программы?
|
|||
|---|---|---|---|
|
#18+
guest_20040621> правильный - второй Пара миллионов юзеров типа ни разу не пугает? ;) Дружище, поделитесь, пожалуйста, где Вы об этом прочли.Не пугает. Для пары миллионов юзеров, у которых будут типовые права - отдельные пользователи БД заводятся на группу. В результате вся группа коннектится под одним пользователем. Это скрещивание подхода 1 и 2, но основное то, что пользователь не сделает действий в базе больше того, что ему выдано. даже если узнает пароль, под которым он логинится в базу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.01.2008, 14:42 |
|
||
|
Как производить авторизацию пользователей программы?
|
|||
|---|---|---|---|
|
#18+
> отдельные пользователи БД заводятся на группу Вот, это уже ближе к теме. И таких групп - а следовательно, и пользователей СУБД - будет сильно (на порядки) меньше, чем пользователей. Ничего общего с "каждому юзеру по пользователю СУБД". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.01.2008, 15:05 |
|
||
|
Как производить авторизацию пользователей программы?
|
|||
|---|---|---|---|
|
#18+
Что мне нравится в наших форумах, дак это то что наши люди не только ответят и посоветуют, но ещё и сами пообсуждают, что другим будет над чем поразмышлять! И за это всем спасибо!!! :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.01.2008, 15:16 |
|
||
|
Как производить авторизацию пользователей программы?
|
|||
|---|---|---|---|
|
#18+
guest_20040621> Это не оправдывает кривые решения. Если все пользователи уже являются членами домена, то третий вариант наименее кривой ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.01.2008, 15:21 |
|
||
|
Как производить авторизацию пользователей программы?
|
|||
|---|---|---|---|
|
#18+
> Если все пользователи уже являются членами домена, то третий вариант наименее кривой Пользователи домена, дружище, это мелкомягкое изобретение. Что само по себе не подразумевает его промышленного применения. Хотите делать на основе LDAP - не вопрос, хорошее решение для ограниченного применения. А вообще решений для нормальной авторизации куча: от OpenID до универсальных SSO с кучей готовых плагинов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.01.2008, 15:30 |
|
||
|
Как производить авторизацию пользователей программы?
|
|||
|---|---|---|---|
|
#18+
guest_20040621Пользователи домена, дружище, это мелкомягкое изобретение.В исходном посте сразу же указывается, что речь идет о MSSQL 2005. Надо внимательнее читать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.01.2008, 15:35 |
|
||
|
Как производить авторизацию пользователей программы?
|
|||
|---|---|---|---|
|
#18+
> В исходном посте сразу же указывается, что речь идет о MSSQL 2005. Надо внимательнее читать. Спасибо, дружище, читать я умею и всегда делаю это внимательно. СУБД - это еще не повод пользоваться всеми костылями мелкомягких. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.01.2008, 15:38 |
|
||
|
Как производить авторизацию пользователей программы?
|
|||
|---|---|---|---|
|
#18+
fatau 1. В БД создать таблицу пользователей типа Login, PassHash, UserFIO, Permissions.... и заводить пользователей в программе и сохранят их в этой таблице. Впринципе всё устраевает. Единственное что не устраивает что коннектится к базе они будут под одним юзером сиквел сервера (с достаточными правами) и пароль впринципе можно посмотреть в конфиг файле программы (хотя можно зашифровать) Используется такой же принцип. Только в конфиге программы юзер сиквела с минимальными правами на чтение таблички systemuser, в которой лежит зашифрованный login&pass с достаточными правами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.01.2008, 15:49 |
|
||
|
Как производить авторизацию пользователей программы?
|
|||
|---|---|---|---|
|
#18+
guest_brИспользуется такой же принцип. Только в конфиге программы юзер сиквела с минимальными правами на чтение таблички systemuser, в которой лежит зашифрованный login&pass с достаточными правами.Этот способ работает до тех пор, пока не найдется желающий все это взломать. Если у вас в общем доступе лежит информация позволяющая однозначно вычислить login&pass, то всегда найдется человек сумеющий их получить. Но цель оправдывает средства. Если в вашей базе нет конфиденциальной и ценной информации, то можно вообще никаких ограничений прав не вводить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.01.2008, 17:03 |
|
||
|
Как производить авторизацию пользователей программы?
|
|||
|---|---|---|---|
|
#18+
авторА если не секрет, что пишешь? Пишу АРМ сотрудника отдела (Юристы). Сведения о судебных процессах, календарь посещений, статистика, печать отчётов в соответсвии с установленными формами, возможность прикрепления к каждому делу сканов документов соответствующих (теоретически количество их неограниченно). Кстати, почитал на форуме как лучше хранить изображения, пришёл к выводу что в базе в BLOB полях лучше. Но документы сильно жать не получится, должны быть достаточно читаемы, соотв размер не маленький будет. Всё равно хранить их в BLOB? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.01.2008, 18:09 |
|
||
|
Как производить авторизацию пользователей программы?
|
|||
|---|---|---|---|
|
#18+
guest_20040621> отдельные пользователи БД заводятся на группу Вот, это уже ближе к теме. И таких групп - а следовательно, и пользователей СУБД - будет сильно (на порядки) меньше, чем пользователей. Ничего общего с "каждому юзеру по пользователю СУБД".Здесь все зависит от конкретного приложения. 1) Если в системе обозримое количество прав доступа, а пользователей много - то пользователей надо объединять в группы, а группе присваивать логин в БД. Пример такого приложения - форум. 2) Если в системе настраиваемых прав доступа слишком много (например 1000 разнородных пермишенов + права пользователя на объекты системы), то в этом случае вариант групп вырождается в 1 пользователь = 1 группа прав доступа. А значит ее проще сразу реализовывать как 1 пользователь = 1 логин в БД. Пример такого приложени: ERP системы При этом количество пользователей не должно быть слишком большим. 3) Более сложные системы (несколько серверов БД, очень много пользователей, разноообразие прав доступа) проще реализоваывать с помощью Application server-а. Но эти случаи не так часто нужны, как иногда кажется... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.01.2008, 18:14 |
|
||
|
Как производить авторизацию пользователей программы?
|
|||
|---|---|---|---|
|
#18+
Я Вам, Bely, по секрету скажу: незачем плодить полу-/недорешения. Решение, полученное в общем виде, будет отлично работать и в частных случаях. Кроме того, здесь обсуждается один из трех канонических уровней ограничения доступа, так что рассматривать его без двух остальных, как самодостаточное, - ошибка (или сильное упрощение - как больше нравится). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.01.2008, 19:28 |
|
||
|
Как производить авторизацию пользователей программы?
|
|||
|---|---|---|---|
|
#18+
авторЭто не оправдывает кривые решения. Правило администрирования уч.зап. Назначай права группам, а не пользователям. Никакой мало мальски толковый админ не будет каждому юзеру права корректировать. Так и здесь имей ввиду группы они не для красоты придуманы таки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.01.2008, 22:59 |
|
||
|
Как производить авторизацию пользователей программы?
|
|||
|---|---|---|---|
|
#18+
>Решение, полученное в общем виде, будет отлично работать и в частных случаях Вопрос только в стоимости решения. Далеко не всегда решение в общем виде будет дешевле частного решения. Утрирую, но тем не мменее: ERP -система управления предприятием. Достаточно общее решение управления. Так давайте ставить ERP контор из 20 человек? >Пользователи домена, дружище, это мелкомягкое изобретение. Что само по себе не подразумевает его промышленного применения Если Вы на свои 700$ в день обслуживаете супер промышленные системы, то Вы - молодец. А я не молодец, т.к. работаю с мелкими конторами. Которые сидели и сидеть будут на "мелкомягких изобретениях". И у них все ПРЕКРАСНО работает. А еще есть знакомая конторка в который молодой ненавистник мелкомагких решил поставить Линукс. Всем простым смертным пользователям. Он умный, отвественный, настроил все как полагается, вот только работать люди не смогли. Вы можете, конечно, объявить людей всех быдлом, но это ничего не изменит. У каждого решения СВОЯ область применения! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2008, 10:19 |
|
||
|
Как производить авторизацию пользователей программы?
|
|||
|---|---|---|---|
|
#18+
> Вопрос только в стоимости решения Именно. Вы считаете только деньги, которые нужно заплатить здесь и сейчас? А не хотите посчитать затраты, скажем, лет за пять? > Далеко не всегда решение в общем виде будет дешевле частного решения Если говорить о проектировании баз данных - всегда. База данных - это наиболее сложно изменяемая компонента любого софта. Стратегически правильно потратить больше денег и времени на этапе проектирования, чем регулярно заниматься переписыванием. "Решение в общем виде" не означает, что должна быть и реализация в общем виде. Иногда достаточно понимать, как и куда будет развиваться база данных, чтобы ее изменение не было фатальным для приложения. Возьмите это обсуждение: всего и требуется для задачи - сопоставить не пользователя приложения пользователю СУБД, а группу пользователей приложения пользователю СУБД. Простое решение? Да. Очевидное? Да. И это маленькое простое решение позволит строить одинаковым образом приложения любого масштаба, а не только для 50 пользователей, как хотелось автору. Хорошая структура данных тем и отличается от плохой, что в каждом конкретном случае правильно решается маленькая подзадача. 90% задач - это типовые задачи, где не нужно ничего изобретать. > Так давайте ставить ERP контор из 20 человек? Давайте. И это будет правильно. Проблема в том, что нет ERP решений приемлемой стоимости и приемлемого качества. Вы что же, думаете, что ERP - это такая страшная софтинка, которую непременно нужно внедрять пару лет? ;) > Которые сидели и сидеть будут на "мелкомягких изобретениях" У Вас есть дар предвидения? ;) Мне это не кажется очевидным. > И у них все ПРЕКРАСНО работает Они думают, что у них все прекрасно работает. Просто потому, что не знают, как это должно работать. Я уже говорил, что альтернативы учетному софту "из коробки" нет. Всем остальным задачам - есть. . > вот только работать люди не смогли Что значит "не смогли"? Браузер, почтовый клиент, офис работают точно так же, как в форточках, даже если не париться и сделать все максимально просто, устанавливая софт из штатных репозиториев. Консоль использовать не обязательно. Какие задачи вызвали затруднение? > У каждого решения СВОЯ область применения! Imho это однобокая точка зрения. Уникальных задач не так много, как кажется на первый взгляд. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2008, 11:33 |
|
||
|
|

start [/forum/topic.php?fid=32&fpage=107&tid=1544014]: |
0ms |
get settings: |
6ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
39ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
44ms |
get tp. blocked users: |
1ms |
| others: | 288ms |
| total: | 400ms |

| 0 / 0 |
