|
|
|
Распределение прав доступа в клиент-серверных приложениях. Сравнение подходов.
|
|||
|---|---|---|---|
|
#18+
Если вам удобнее называть группу пользователей ролью, на здоровье, суть от этого не изменится. Предлагаю не спорить больше об этом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2006, 11:04 |
|
||
|
Распределение прав доступа в клиент-серверных приложениях. Сравнение подходов.
|
|||
|---|---|---|---|
|
#18+
?Если вам удобнее называть группу пользователей ролью, на здоровье, суть от этого не изменится. Предлагаю не спорить больше об этом.нет, мне савсем неудобна "называть группу ползателей-ролью". Мне удобно заметить, что вполне достаточно приписать йузеру роль, и нет надобности в прокладках, если "группа" создаёцца лишь в целях объединения палнамочий и ничем не отличаецца от роли. Я и не спорю. Я спрашиваю - зачем (исчо) нужно три абстракции вместо двух. Фполне допускаю, чтаа причина (терх абстракций), ускользающая от нашего с вами внимания есь. Тока вот, здаецца мне, она завсим не ф том, шо шо-то -хруппировка йузерофф, не-пойми-почём, а чо-та друхое - хруппировка фукций-не-пайми-па-ком. Хателось бы заслушать гаспод в нах-ся в третьей пазиции крутых хуру, но жаль - боты не побалують нас своими откровениями. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2006, 11:15 |
|
||
|
Распределение прав доступа в клиент-серверных приложениях. Сравнение подходов.
|
|||
|---|---|---|---|
|
#18+
softwarer ModelRЭ, как это не сводимы? Второй - в точности агрегат над первым. Можно даже не хранить. Разные они единственно в силу требований доступа. Не стоит черезчур рано спускаться на физический уровень (хранить - не хранить). В логической модели в данном случае есть две принципиально разных сущности: "детализированная информация по моим накладным" и "сумма по чужим накладным" либо "сумма по всем накладным" - как удобнее. Сущности, как видите, независимые и не то чтобы пересекающиеся. Если бы не проблема доступа, не вижу смысла вторую сущность вводить в логическую модель. Как не вводят туда все мыслимые запросы. Ее также нет смысла вводить, если право дается на отчет. Отчет тогда считается частью системы, и использует сырые незащищенные данные. Нет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2006, 12:32 |
|
||
|
Распределение прав доступа в клиент-серверных приложениях. Сравнение подходов.
|
|||
|---|---|---|---|
|
#18+
ModelRесли право дается на отчет. Отчет тогда считается частью системы, и использует сырые незащищенные данные. Нет? Да, право дается группе=роли пользователей на запуск отчета с определенными параметрами. Т.о. разные роли получат один и тот же отчет но разного содержания. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2006, 12:48 |
|
||
|
Распределение прав доступа в клиент-серверных приложениях. Сравнение подходов.
|
|||
|---|---|---|---|
|
#18+
Если у человека есть доступ к отчетности по счету расчетов с покупателями, и доступ к информации по конкретному подмножеству покупателей, что ему следует показать в оборотно-сальдовой ведомости по упомянутому счету? =============================================================================== Отвечать без смысла на это письмо. Сообщение направлено вам роботом доски объявлений. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2006, 14:06 |
|
||
|
Распределение прав доступа в клиент-серверных приложениях. Сравнение подходов.
|
|||
|---|---|---|---|
|
#18+
DogenЕсли у человека есть доступ к отчетности по счету расчетов с покупателями, и доступ к информации по конкретному подмножеству покупателей, что ему следует показать в оборотно-сальдовой ведомости по упомянутому счету? Параметр отчета-группа покупателей Содержание - только аналитические счета этих покупателей, т.е. только часть всего счета. Так, наверное ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2006, 15:06 |
|
||
|
Распределение прав доступа в клиент-серверных приложениях. Сравнение подходов.
|
|||
|---|---|---|---|
|
#18+
мод DogenЕсли у человека есть доступ к отчетности по счету расчетов с покупателями, и доступ к информации , что ему следует показать в оборотно-сальдовой ведомости по упомянутому счету? Параметр отчета-группа покупателей Содержание - только аналитические счета этих покупателей, т.е. только часть всего счета. Так, наверное Дык, можно понимать и наоборот, что право на отчет перекрывает ограничение на доступ по конкретному подмножеству покупателей. Мутное короче это дело. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2006, 17:27 |
|
||
|
Распределение прав доступа в клиент-серверных приложениях. Сравнение подходов.
|
|||
|---|---|---|---|
|
#18+
Я думаю, что конкретно показывать в отчете, должен сказать заказчик при сборе требований. По тому, что сделать можно и так, что пользователь не имеет права знать о существовании объектов на которые у него нет соответствующих прав, тогда он не должен их видеть в любых производных выборках, а может быть так, что он не может видеть объекты там, где сказано, а в отчетах - на здоровье. Все идет от требований, а абстрактно правильных вещей не бывает... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2006, 17:31 |
|
||
|
Распределение прав доступа в клиент-серверных приложениях. Сравнение подходов.
|
|||
|---|---|---|---|
|
#18+
ModelR Дык, можно понимать и наоборот, что право на отчет перекрывает ограничение на доступ по конкретному подмножеству покупателей. Мутное короче это дело. Да, надо построить модель и следовать ей, чтобы правила были понятны всем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2006, 17:33 |
|
||
|
Распределение прав доступа в клиент-серверных приложениях. Сравнение подходов.
|
|||
|---|---|---|---|
|
#18+
ModelRЕсли бы не проблема доступа, не вижу смысла вторую сущность вводить в логическую модель. Согласен. Я даже не настаиваю на ее формальном введении. Тем не менее, если мы ставим задачу именно с ограничением доступа - формально должны будем сделать именно так. Имхо ситуация такова: есть некий формализованный процесс разработки. Любой нормальный человек приспосабливает его к ситуации, в том числе убирая ненужные в данном случае формальности. Однако при этом стоит таки "держать в уме" то, что не сочли нужным записывать на бумаге. Не факт, что я нарисую в ER-ке такую вот суммарную вьюху, но имхо действовать следует так, как если бы она была нарисована; по крайней мере - не противоречить явно. Иначе получится уже "напрасно отменили эти формальности". ModelRЕе также нет смысла вводить, если право дается на отчет. Отчет тогда считается частью системы, и использует сырые незащищенные данные. Нет? Нет. Такой подход означает следующее: вместо того, чтобы реализовать защиту в одном месте, она заново реализуется в каждом отчете. Этот подход имеет все минусы копирования кода по сравнению с выделением стандартных подпрограмм. Достаточно подумать о цене тестирования - одно дело протестировать вьюху, не дает ли она кому-либо из двадцати пользователей лишней информации, другое дело - протестировать сотню отчетов, не дает ли он кому-либо из двадцати пользователей лишней информации. Если мы говорим о защищенной информации.... лично я просто не назову "защитой" то, что программист или постановщик может нарушить элементарной рассеянностью. Поэтому я полагаю что первая часть - обязательна. Второй подход - возможен в порядке исключения в конкретном случае (конкретном отчете). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2006, 17:58 |
|
||
|
Распределение прав доступа в клиент-серверных приложениях. Сравнение подходов.
|
|||
|---|---|---|---|
|
#18+
2 softwarer Конечно, написать код, разграничивающий доступ 1 раз вместо 20 - это очень хорошо, и здесь возражений нет. Но не все так просто. Случаи, они разные бывают. Почти всегда, когда в систему закладывают ограничение доступа на уровне ядра, почти сразу за этим возникает требования предоставить функции запуска некоторых процедур с полномочиями, более высокими, чем есть у данного пользователя. Вот этот хитрый отчет, судя по всему, тоже так должен сделать: получить на время более высокие полномочия и выполнить обработку, самостоятельно реализуя функции защиты. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2006, 18:34 |
|
||
|
Распределение прав доступа в клиент-серверных приложениях. Сравнение подходов.
|
|||
|---|---|---|---|
|
#18+
softwarer- одно дело протестировать вьюху 1. К сожалению не всякий отчет сводится к вьюхе. 2. Ввод параметров всех отчетов реализуется одним набором процедур => проверка прав кодируется один раз. 3. Самое неправильное - это раздавать пользователям права на объекты БД (таблицы, вью и пр.), пользователи про БД вообще не должны ничего знать, даже про ее существование. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2006, 09:36 |
|
||
|
Распределение прав доступа в клиент-серверных приложениях. Сравнение подходов.
|
|||
|---|---|---|---|
|
#18+
мод3. Самое неправильное - это раздавать пользователям права на объекты БД (таблицы, вью и пр.), пользователи про БД вообще не должны ничего знать, даже про ее существование. +1 добавлю: и администратор системы, раздающий доступ, тоже ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2006, 10:25 |
|
||
|
Распределение прав доступа в клиент-серверных приложениях. Сравнение подходов.
|
|||
|---|---|---|---|
|
#18+
?Почти всегда, когда в систему закладывают ограничение доступа на уровне ядра, почти сразу за этим возникает требования предоставить функции запуска некоторых процедур с полномочиями, более высокими, чем есть у данного пользователя. Безусловно, возникают. Именно такой случай мы и рассматриваем. Мое утверждение: такие случаи в целом обусловлены недостаточно хорошо выполненной постановкой задачи и недостаточно ответственным подходом к исправлению ошибок постановки. Обратите внимание, как идет цепь рассуждений. Правильная (с моей точки зрения): 1. Определить объекты доступа и политику ограничений к ним (разная политика - разные объекты). 2. Спокойно работать. В примере же с дополнительными полномочиями получается следующее: 1. Определить "вроде как один" объект. 2. Наткнуться на то, что невозможно посчитать требуемый отчет. 3. Родить простое и кривое решение - дополнительные полномочия отчета. Это пример того, что я называю эскалацией кривизны. Вместо того, чтобы исправить ошибку, рождается решение, само по себе некузявое, призванное заткнуть одну дыру, открыв вместо нее другую. Потом эти некузявые решения начнут применять даже там, где изначальных дыр нет. ?Вот этот хитрый отчет, судя по всему, тоже так должен сделать: Не "должен". Просто "постановщику лень подумать", и он находит "простой путь". мод1. К сожалению не всякий отчет сводится к вьюхе. Разумеется. Это просто удобное слово-упрощение. Можно читать "любой объект - источник данных". Суть в том, что проверка прав должна кодироваться в одном месте, пока нет очень существенной причины отойти от этого правила. мод2. Ввод параметров всех отчетов реализуется одним набором процедур => проверка прав кодируется один раз. Это покрывает только простые случаи. Проверка прав не сводится к ограничению допустимого множества параметров, хотя согласен, это типовой вариант. мод3. Самое неправильное - это раздавать пользователям права на объекты БД (таблицы, вью и пр.), пользователи про БД вообще не должны ничего знать, даже про ее существование. Я не вижу логики в сказанном Вами и не думаю, что обсуждение этого будет полезным. Впрочем, мне слегка интересно, каким образом работает пользователь, если он не имеет прав на процедуры, через которые "вводятся параметры отчетов". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2006, 13:08 |
|
||
|
Распределение прав доступа в клиент-серверных приложениях. Сравнение подходов.
|
|||
|---|---|---|---|
|
#18+
В практике все сводится к реализации требования "дать пользователю доступ к тому, с чем ему положено работать по должности". Проблемы же возникают потому, что список того, "с чем положено", не всегда удается получить в достаточно формализованном виде. Все-таки, как насчет выдачи прав в соответствии с уровнем допуска?.. =============================================================================== Отвечать без смысла на это письмо. Сообщение направлено вам роботом доски объявлений. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2006, 14:05 |
|
||
|
Распределение прав доступа в клиент-серверных приложениях. Сравнение подходов.
|
|||
|---|---|---|---|
|
#18+
softwarerВпрочем, мне слегка интересно, каким образом работает пользователь, если он не имеет прав на процедуры, через которые "вводятся параметры отчетов". Я не раздаю права на процедуры. Грубо говоря, main может вызвать каждый, кто прошел авторизацию, дальше вызов пойдет по правам на функции программы. Если есть право на данный отчет, то процедуры ввода параметров вызовутся, а вот что через них можно ввести, определяется правами на данные. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2006, 14:31 |
|
||
|
Распределение прав доступа в клиент-серверных приложениях. Сравнение подходов.
|
|||
|---|---|---|---|
|
#18+
softwarer ?Почти всегда, когда в систему закладывают ограничение доступа на уровне ядра, почти сразу за этим возникает требования предоставить функции запуска некоторых процедур с полномочиями, более высокими, чем есть у данного пользователя. Безусловно, возникают. Именно такой случай мы и рассматриваем. Мое утверждение: такие случаи в целом обусловлены недостаточно хорошо выполненной постановкой задачи и недостаточно ответственным подходом к исправлению ошибок постановки. Грамотные и продуманные на эн лет вперед постановки - это было бы прекрасно. Но реально получится, что для нового отчета нужно переосмысливать ранее созданные представления, процедуры, создавать новые, отслеживать что в каком отчете используется, а также администратору возится с раздачей прав. Будет ли это надежней чем отладить отчет - вопрос... softwarer мод1. К сожалению не всякий отчет сводится к вьюхе. Разумеется. Это просто удобное слово-упрощение. Можно читать "любой объект - источник данных".И грань между отчетом и вьюхой стирается. В общем одно место как-то все время расползается:( Хотя к идеалу стремиться конечно надо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2006, 15:17 |
|
||
|
Распределение прав доступа в клиент-серверных приложениях. Сравнение подходов.
|
|||
|---|---|---|---|
|
#18+
> Самое неправильное - это раздавать пользователям права на объекты БД Вам противопоказано проектирование. Займитесь чем-нибудь попроще. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2006, 15:44 |
|
||
|
Распределение прав доступа в клиент-серверных приложениях. Сравнение подходов.
|
|||
|---|---|---|---|
|
#18+
guest_20040621 Свои советы оставьте при себе. Аргументы будут ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2006, 16:02 |
|
||
|
Распределение прав доступа в клиент-серверных приложениях. Сравнение подходов.
|
|||
|---|---|---|---|
|
#18+
> Аргументы будут ? Нет. Знаете, я бы рекомендовал Вам подписывать свои сообщения. На случай, если их прочтет работодатель. Это лучше любого резюме: они не содержат ничего, кроме пионерского задора и пионерской же глупости. Нельзя столь уверенно нести чушь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2006, 19:41 |
|
||
|
Распределение прав доступа в клиент-серверных приложениях. Сравнение подходов.
|
|||
|---|---|---|---|
|
#18+
ModelRГрамотные и продуманные на эн лет вперед постановки - это было бы прекрасно. Но не является необходимым или хотя бы названным мной условием. Я нигде об этом не говорил и этого не подразумевал; предлагаю не уводить в сторону. ModelRНо реально получится, что для нового отчета нужно переосмысливать ранее созданные Вот это уже плохая постановка, плохо выполненное обследование. Ближе так: время от времени, при изменении бизнеса, нужно переосмысливать некую часть ранее сделанного. Нормальная и естественная задача сопровождения. ModelRотслеживать что в каком отчете используется, Нет. Это как раз при "отчетной" модели придется что-то отслеживать. Если права обрезают источники данных - на отчеты становится глубоко наплевать. Можно сотворить хоть тысячу отчетов, можно дать пользователю конструктор отчетов - все равно до скрытых от него данных он не доберется. И программист по рассеянности их ему не откроет. ModelRа также администратору возится с раздачей прав. Ничуть. У меня такое ощущение, что Вы сейчас попали в сеть одной вредной привычки - оценивать "другое решение", подсознательно рассматривая его через призму существующего, перенося на него накопленные рефлексы. ModelRБудет ли это надежней чем отладить отчет - вопрос... Отладить один источник данных заведомо надежнее, чем отладить N отчетов. ModelRИ грань между отчетом и вьюхой стирается. Непринципиально в данном случае. Отчет - это не источник данных; это в общем случае форма представления дополнительно обработанных данных из нескольких источников. Его можно рассматривать как вторичный источник данных, но в силу вторичности - данные в отчете специфически обрабатываются и фильтруются - у него мал коэффициент повторного использования. Конечно, можно все на свете обозвать отчетом, но это сугубое теоретизирование. Что интересно - в системе, в проектировании которой я относительно недавно принимал участие, мне пришлось приложить кучу усилий как раз для убеждения в правильности такого сведения. Но там существенно особый случай. ModelRВ общем одно место как-то все время расползается Хм. Скажем так, по моим ощущениям расползаться склонно то, что сделано не на месте. Например, если изначально в одной подпрограмме сделали то, что надо было разделить на три - велика вероятность того, что треть ее кода захочется откопировать в другое место. Но правильным будет - выделить подпрограмму. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2006, 13:05 |
|
||
|
Распределение прав доступа в клиент-серверных приложениях. Сравнение подходов.
|
|||
|---|---|---|---|
|
#18+
модЯ не раздаю права на процедуры. В контексте дальнейшего я скорее понимаю это как "я каждому даю права на все процедуры". модГрубо говоря, main может вызвать каждый, кто прошел авторизацию, дальше вызов пойдет по правам на функции программы. Для этого есть ровно два пути - либо раздавать права на хранимки, либо полагаться только на собственный велосипед. модЕсли есть право на данный отчет, то процедуры ввода параметров вызовутся, а вот что через них можно ввести, определяется правами на данные. То есть, если я правильно понимаю, я беру старый-добрый SQL*Plus, подключаюсь к БД, чихая на все права на отчеты, запускаю "процедуры ввода параметров", и остается надеяться на то, что уж они-то не пустят меня к чужим данным. Не вижу в этой схеме ничего правильного. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2006, 13:24 |
|
||
|
Распределение прав доступа в клиент-серверных приложениях. Сравнение подходов.
|
|||
|---|---|---|---|
|
#18+
softwarerя беру старый-добрый SQL*Plus, подключаюсь к БД Да, конечно, если пользователи могут прямо ходить в БД, то от них надо защищаться, раздавать права. При большом числе объектов БД это трудоемко. Проще, наверное, вообще лишить их всяких прав. Т.е. работать можно только через прикладнуху. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2006, 16:10 |
|
||
|
Распределение прав доступа в клиент-серверных приложениях. Сравнение подходов.
|
|||
|---|---|---|---|
|
#18+
авторПри большом числе объектов БД это трудоемко. Если правильно сделать систему раздачи прав - нисколько не трудоемко. Несколько взмахов мышой и нажатий на клаву не такой уж большой труд :)) Не могу прокомментировать остальное - пытался следить за топиком, но не смог :)) Теперь уже не понять, что тут :) По правам вообще - сейчас у нас система прав следующая: есть юзеры - они и логины sql-сервера и прикладные юзеры системы, есть группы юзеров - только прикладные группы, на группу выдаются права на визуальные объекты системы (формы, меню и т.д.) и на запуск ХП (кроме ХП больше ничего). Также есть ограничения бизнес-логики по юзерам или группам. Чего бы изменить хотелось - группы иметь ролями сервера, тогда перегрантовывать права на каждую процедуру каждому юзеру не нужно, права выдаются один раз на роль. Ну и объекты, на которые действуют права, объединить логически в более обобщенные и уже на них прописывать права через софтину (проще получится админу) Остальное удовлетворяет вроде пока. -- Tygra's -- ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2006, 16:38 |
|
||
|
Распределение прав доступа в клиент-серверных приложениях. Сравнение подходов.
|
|||
|---|---|---|---|
|
#18+
модДа, конечно, если пользователи могут прямо ходить в БД, то от них надо защищаться, раздавать права. OK. модПри большом числе объектов БД это трудоемко. Не сказал бы. Раздача прав на один объект малозаметна на фоне разработки и тестирования этого одного объекта. Трудоемко - если сначала сделали кучу всего чер-те-как, а потом подумали, не раздать ли права. модПроще, наверное, вообще лишить их всяких прав. Т.е. работать можно только через прикладнуху. Это лечение перхоти методом доктора Гильотена. Я не назову ни одного метода сделать так, который бы 1) Был надежен на уровне более чем "тупые пользователи" 2) Не обладал бы куда более существенными минусами, нежели стоимость раздачи прав. Кроме того, такая постановка вопроса живет ровно до первого интеграционного проекта - когда начинается "а вот мы хотим подключаться к этой БД нашим генератором отчетов", или "мы хотим брать эти справочники для репликации в другую ИС" итп. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.04.2006, 00:40 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=33698756&tid=1545286]: |
0ms |
get settings: |
4ms |
get forum list: |
8ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
148ms |
get topic data: |
5ms |
get forum data: |
1ms |
get page messages: |
32ms |
get tp. blocked users: |
1ms |
| others: | 187ms |
| total: | 390ms |

| 0 / 0 |
