|
|
|
авторизация: на уровне СУБД vs на уровне ПО
|
|||
|---|---|---|---|
|
#18+
Вопрос - как лучше организовать авторизацию - поднимался не раз, часто - под конкретные СУБД много копий сломано, однозначного мнения нет.... что с т.з. практики чаще встречается, как делаете? -авторизация на уровне ПО разработчик сам решает как хранить пользователей/пароли и т.д. -авторизация на уровне СУБД войти в систему могут только пользователи, зарегистрированные(известные) СУБД дополнительных таблиц с пользователями/паролями не создается интерфейс для пользователя, ессно, одинаковый в обоих случаях - ввести логин/пароль реализация под конкретные СУБД (FB/MySQL/MSSQL) переносимость решений между СУБД надежность решений, безопасность ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2009, 13:22 |
|
||
|
авторизация: на уровне СУБД vs на уровне ПО
|
|||
|---|---|---|---|
|
#18+
Гм, я использую оба варианта - хранение логинов, распределение ролей и авторизация происходит на уровне СУБД, плюс в БД хранится своя таблица пользователей с уникальным полем логинов, описывающая дополнительные информативные параметры пользователей, а так же другую информацию, необходимую на уровне бизнес логики сервера и его приложений. Для ведения всего этого хозяйства создаются свои ХП, позволяющие зарегистрировать пользователя, поменять ему пароль, изменить роли пользователя и его параметры и т.д. В зависимости от возможностей сервера можно получить достаточно продвинутую собственную функциональность, например в Sybase ASA легко можно написать собственную ХП на подключение сессии, в ней по логину найти в таблице юзеров нужного, при отсутствии такового запретить подключение, создать глобальные сессионные переменные и занести туда текущие значения состояния юзера из таблицы его доп параметров для того, чтобы манипулировать ими в бизнес логике сервера и его приложений без лишнего запроса его параметров с таблицы и т.д. и т.п. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2009, 14:03 |
|
||
|
авторизация: на уровне СУБД vs на уровне ПО
|
|||
|---|---|---|---|
|
#18+
ASCRUS, +1 Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2009, 14:21 |
|
||
|
авторизация: на уровне СУБД vs на уровне ПО
|
|||
|---|---|---|---|
|
#18+
тверскойВопрос - как лучше организовать авторизацию ... что с т.з. практики чаще встречается, как делаете? Например, в СУБД ЛИНТЕР на выбор предлагаются следующие варианты (из документации): CREATE [OR REPLACE] USER <имя пользователя БД> [IDENTIFIED BY <пароль> | SYSTEM | PROTOCOL] Конструкция IDENTIFIED BY SYSTEM устанавливает для пользователя режим встроенной аутентификации операционной системы. Опция PROTOKOL разрешает аутентификацию пользователя при проверке доступа к БД без указания регистрационных данных – по имени пользователя, зарегистрированного в ОС. В этом случае для регистрации необходжимо указать пустыми имя пользователя и его пароль. Пользователь-владелец БД не может аутентифицироваться таким способом. Создание пользователя с использованием встроенной аутентификации возможно только в операционных системах, которые поддерживают эту функциональность (Windows NT 4.0/2000/XP/Vista, SunOS, FreeBSD, Linux). При подсоединении к БД пользователя, созданного c режимом встроенной аутентификации, в качестве пароля необходимо указывать пароль этого пользователя в ОС. В Windows NT и Windows 2000 пользователь, для которого устанавливается режим встроенной аутентификации, должен иметь привилегию SE_TCB_NAME ("Act as part of the Operating System" – "Работа в режиме операционной системы"). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2009, 16:41 |
|
||
|
авторизация: на уровне СУБД vs на уровне ПО
|
|||
|---|---|---|---|
|
#18+
Первый вариант,но только с разграничением прав на основе операций.Это позовляет автоматически настраивать интерфейс в зависимости от прав(загрузка только разрешенных модулей, скрытие элементов управления(пункты меню,кнопки и тд). Роли на мой взгляд,весьма неудобны. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2009, 19:03 |
|
||
|
авторизация: на уровне СУБД vs на уровне ПО
|
|||
|---|---|---|---|
|
#18+
ЮВКонструкция IDENTIFIED BY SYSTEM устанавливает для пользователя режим встроенной аутентификации операционной системы. Вопрос насколько я понимаю был не об этом. То, что пишите Вы - это опять же авторизация средствами СУБД с привязкой к авторизации ОС, что есть почти во всех СУБД. авторПервый вариант,но только с разграничением прав на основе операций.Это позовляет автоматически настраивать интерфейс в зависимости от прав(загрузка только разрешенных модулей, скрытие элементов управления(пункты меню,кнопки и тд). Роли на мой взгляд,весьма неудобны. Если только первый вариант, то в итоге мы я так понимаю мы имеем сервер и базу, клиенты которых не имеют никаких ограничений по доступу к их информации и ХП и в обход авторизации приложения можно взять простенький SQL редактор, подключится к БД и творить что душе угодно. С другой стороны в моем варианте так же никуда не делать возможность автоматически настраивать интерфейс в зависимости от прав пользователя, так как в доп таблицах всю нужную информацию для этого мы имеем. P.S. Ну а роли (группы) - удобно, неудобно, вопрос спорный. По мне удобный - мне гораздо легче определить в виде ролей в разрезе функционала разные права и потом просто раздавать их пользователям. Или, если в ТЗ четко расписанное кол-во групп пользователей с их бизнес-процессами, создать группы пользователей с нужными правами на объекты БД и назначать пользователя в нужную группу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2009, 10:13 |
|
||
|
авторизация: на уровне СУБД vs на уровне ПО
|
|||
|---|---|---|---|
|
#18+
авторЕсли только первый вариант, то в итоге мы я так понимаю мы имеем сервер и базу, клиенты которых не имеют никаких ограничений по доступу к их информации и ХП и в обход авторизации приложения можно взять простенький SQL редактор, подключится к БД и творить что душе угодно. Подобный вариант защиты годится только для 2-х звенки и расчитан только на неподготовленных пользователей, совершенно не приемлем для интернета.Здесь уже нужна 4-x звенка и БД будет за двумя firewall'ами,а отдельный сервис авторизации просто интергрируется с другими. авторНу а роли (группы) - удобно, неудобно, вопрос спорный. По мне удобный - мне гораздо легче определить в виде ролей в разрезе функционала разные права и потом просто раздавать их пользователям. Или, если в ТЗ четко расписанное кол-во групп пользователей с их бизнес-процессами, создать группы пользователей с нужными правами на объекты БД и назначать пользователя в нужную группу Конечно спорный,приложения бывают разными,но четко расписанное кол-во групп бывает редко,да и жескость в конструкции может выйти боком.У меня в последнем проекте несколько десятков видов документов,каждый из них может иметь от 3х до 8 статусов,помимо этого есть ограничения на просмотр списков,открытие,создание,редактирование.Если оперировать ролями, то нужно было бы создавать под каждый чих отдельную роль или их перечисление,сопоставить учетку надцати ролям,что,по мне, весьма неудобно.А так есть конкретное действие,к нему дается/запрещается доступ ролям приложения(по дожностям или отделам,группам LDAP),при необходимости конкретым пользователям(запись из справочника сотрудников или учетка LDAP).В большенстве случаев делаем запись для нового сотрудники и все. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2009, 12:48 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=36098602&tid=1543144]: |
0ms |
get settings: |
9ms |
get forum list: |
19ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
167ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
64ms |
get tp. blocked users: |
2ms |
| others: | 242ms |
| total: | 524ms |

| 0 / 0 |
