powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Распределение прав доступа в клиент-серверных приложениях. Сравнение подходов.
25 сообщений из 106, страница 4 из 5
Распределение прав доступа в клиент-серверных приложениях. Сравнение подходов.
    #33688039
?
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
?
Гость
Если вам удобнее называть группу пользователей ролью, на здоровье, суть от этого не изменится. Предлагаю не спорить больше об этом.
...
Рейтинг: 0 / 0
Распределение прав доступа в клиент-серверных приложениях. Сравнение подходов.
    #33688093
4321
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
?Если вам удобнее называть группу пользователей ролью, на здоровье, суть от этого не изменится. Предлагаю не спорить больше об этом.нет, мне савсем неудобна "называть группу ползателей-ролью". Мне удобно заметить, что вполне достаточно приписать йузеру роль, и нет надобности в прокладках, если "группа" создаёцца лишь в целях объединения палнамочий и ничем не отличаецца от роли. Я и не спорю. Я спрашиваю - зачем (исчо) нужно три абстракции вместо двух.
Фполне допускаю, чтаа причина (терх абстракций), ускользающая от нашего с вами внимания есь. Тока вот, здаецца мне, она завсим не ф том, шо шо-то -хруппировка йузерофф, не-пойми-почём, а чо-та друхое - хруппировка фукций-не-пайми-па-ком. Хателось бы заслушать гаспод в нах-ся в третьей пазиции крутых хуру, но жаль - боты не побалують нас своими откровениями.
...
Рейтинг: 0 / 0
Распределение прав доступа в клиент-серверных приложениях. Сравнение подходов.
    #33688485
ModelR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer ModelRЭ, как это не сводимы? Второй - в точности агрегат над первым. Можно даже не хранить. Разные они единственно в силу требований доступа.
Не стоит черезчур рано спускаться на физический уровень (хранить - не хранить).

В логической модели в данном случае есть две принципиально разных сущности: "детализированная информация по моим накладным" и "сумма по чужим накладным" либо "сумма по всем накладным" - как удобнее. Сущности, как видите, независимые и не то чтобы пересекающиеся.
Если бы не проблема доступа, не вижу смысла вторую сущность вводить в логическую модель. Как не вводят туда все мыслимые запросы. Ее также нет смысла вводить, если право дается на отчет. Отчет тогда считается частью системы, и использует сырые незащищенные данные. Нет?
...
Рейтинг: 0 / 0
Распределение прав доступа в клиент-серверных приложениях. Сравнение подходов.
    #33688560
мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ModelRесли право дается на отчет. Отчет тогда считается частью системы, и использует сырые незащищенные данные. Нет?
Да, право дается группе=роли пользователей на запуск отчета с определенными параметрами. Т.о. разные роли получат один и тот же отчет но разного содержания.
...
Рейтинг: 0 / 0
Распределение прав доступа в клиент-серверных приложениях. Сравнение подходов.
    #33688847
Фотография Dogen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если у человека есть доступ к отчетности по счету расчетов с покупателями, и доступ к информации по конкретному подмножеству покупателей, что ему следует показать в оборотно-сальдовой ведомости по упомянутому счету?


===============================================================================
Отвечать без смысла на это письмо. Сообщение направлено вам роботом доски объявлений.
...
Рейтинг: 0 / 0
Распределение прав доступа в клиент-серверных приложениях. Сравнение подходов.
    #33689058
мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DogenЕсли у человека есть доступ к отчетности по счету расчетов с покупателями, и доступ к информации по конкретному подмножеству покупателей, что ему следует показать в оборотно-сальдовой ведомости по упомянутому счету?

Параметр отчета-группа покупателей
Содержание - только аналитические счета этих покупателей, т.е. только часть всего счета.
Так, наверное
...
Рейтинг: 0 / 0
Распределение прав доступа в клиент-серверных приложениях. Сравнение подходов.
    #33689628
ModelR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мод DogenЕсли у человека есть доступ к отчетности по счету расчетов с покупателями, и доступ к информации , что ему следует показать в оборотно-сальдовой ведомости по упомянутому счету?

Параметр отчета-группа покупателей
Содержание - только аналитические счета этих покупателей, т.е. только часть всего счета.
Так, наверное
Дык, можно понимать и наоборот, что право на отчет перекрывает ограничение на доступ по конкретному подмножеству покупателей. Мутное короче это дело.
...
Рейтинг: 0 / 0
Распределение прав доступа в клиент-серверных приложениях. Сравнение подходов.
    #33689639
?
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
?
Гость
Я думаю, что конкретно показывать в отчете, должен сказать заказчик при сборе требований. По тому, что сделать можно и так, что пользователь не имеет права знать о существовании объектов на которые у него нет соответствующих прав, тогда он не должен их видеть в любых производных выборках, а может быть так, что он не может видеть объекты там, где сказано, а в отчетах - на здоровье. Все идет от требований, а абстрактно правильных вещей не бывает...
...
Рейтинг: 0 / 0
Распределение прав доступа в клиент-серверных приложениях. Сравнение подходов.
    #33689648
мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ModelR
Дык, можно понимать и наоборот, что право на отчет перекрывает ограничение на доступ по конкретному подмножеству покупателей. Мутное короче это дело.
Да, надо построить модель и следовать ей, чтобы правила были понятны всем.
...
Рейтинг: 0 / 0
Распределение прав доступа в клиент-серверных приложениях. Сравнение подходов.
    #33689731
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ModelRЕсли бы не проблема доступа, не вижу смысла вторую сущность вводить в логическую модель.
Согласен. Я даже не настаиваю на ее формальном введении. Тем не менее, если мы ставим задачу именно с ограничением доступа - формально должны будем сделать именно так.

Имхо ситуация такова: есть некий формализованный процесс разработки. Любой нормальный человек приспосабливает его к ситуации, в том числе убирая ненужные в данном случае формальности. Однако при этом стоит таки "держать в уме" то, что не сочли нужным записывать на бумаге. Не факт, что я нарисую в ER-ке такую вот суммарную вьюху, но имхо действовать следует так, как если бы она была нарисована; по крайней мере - не противоречить явно. Иначе получится уже "напрасно отменили эти формальности".

ModelRЕе также нет смысла вводить, если право дается на отчет. Отчет тогда считается частью системы, и использует сырые незащищенные данные. Нет?
Нет. Такой подход означает следующее: вместо того, чтобы реализовать защиту в одном месте, она заново реализуется в каждом отчете. Этот подход имеет все минусы копирования кода по сравнению с выделением стандартных подпрограмм. Достаточно подумать о цене тестирования - одно дело протестировать вьюху, не дает ли она кому-либо из двадцати пользователей лишней информации, другое дело - протестировать сотню отчетов, не дает ли он кому-либо из двадцати пользователей лишней информации. Если мы говорим о защищенной информации.... лично я просто не назову "защитой" то, что программист или постановщик может нарушить элементарной рассеянностью.

Поэтому я полагаю что первая часть - обязательна. Второй подход - возможен в порядке исключения в конкретном случае (конкретном отчете).
...
Рейтинг: 0 / 0
Распределение прав доступа в клиент-серверных приложениях. Сравнение подходов.
    #33689831
?
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
?
Гость
2 softwarer
Конечно, написать код, разграничивающий доступ 1 раз вместо 20 - это очень хорошо, и здесь возражений нет.
Но не все так просто. Случаи, они разные бывают. Почти всегда, когда в систему закладывают ограничение доступа на уровне ядра, почти сразу за этим возникает требования предоставить функции запуска некоторых процедур с полномочиями, более высокими, чем есть у данного пользователя. Вот этот хитрый отчет, судя по всему, тоже так должен сделать: получить на время более высокие полномочия и выполнить обработку, самостоятельно реализуя функции защиты.
...
Рейтинг: 0 / 0
Распределение прав доступа в клиент-серверных приложениях. Сравнение подходов.
    #33690561
мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer- одно дело протестировать вьюху
1. К сожалению не всякий отчет сводится к вьюхе.
2. Ввод параметров всех отчетов реализуется одним набором процедур => проверка прав кодируется один раз.
3. Самое неправильное - это раздавать пользователям права на объекты БД (таблицы, вью и пр.), пользователи про БД вообще не должны ничего знать, даже про ее существование.
...
Рейтинг: 0 / 0
Распределение прав доступа в клиент-серверных приложениях. Сравнение подходов.
    #33690714
Фотография Dogen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мод3. Самое неправильное - это раздавать пользователям права на объекты БД (таблицы, вью и пр.), пользователи про БД вообще не должны ничего знать, даже про ее существование.
+1

добавлю: и администратор системы, раздающий доступ, тоже
...
Рейтинг: 0 / 0
Распределение прав доступа в клиент-серверных приложениях. Сравнение подходов.
    #33691454
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
?Почти всегда, когда в систему закладывают ограничение доступа на уровне ядра, почти сразу за этим возникает требования предоставить функции запуска некоторых процедур с полномочиями, более высокими, чем есть у данного пользователя.
Безусловно, возникают. Именно такой случай мы и рассматриваем. Мое утверждение: такие случаи в целом обусловлены недостаточно хорошо выполненной постановкой задачи и недостаточно ответственным подходом к исправлению ошибок постановки.

Обратите внимание, как идет цепь рассуждений. Правильная (с моей точки зрения):

1. Определить объекты доступа и политику ограничений к ним (разная политика - разные объекты).
2. Спокойно работать.

В примере же с дополнительными полномочиями получается следующее:

1. Определить "вроде как один" объект.
2. Наткнуться на то, что невозможно посчитать требуемый отчет.
3. Родить простое и кривое решение - дополнительные полномочия отчета.

Это пример того, что я называю эскалацией кривизны. Вместо того, чтобы исправить ошибку, рождается решение, само по себе некузявое, призванное заткнуть одну дыру, открыв вместо нее другую. Потом эти некузявые решения начнут применять даже там, где изначальных дыр нет.

?Вот этот хитрый отчет, судя по всему, тоже так должен сделать:
Не "должен". Просто "постановщику лень подумать", и он находит "простой путь".

мод1. К сожалению не всякий отчет сводится к вьюхе.
Разумеется. Это просто удобное слово-упрощение. Можно читать "любой объект - источник данных".

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

мод2. Ввод параметров всех отчетов реализуется одним набором процедур => проверка прав кодируется один раз.
Это покрывает только простые случаи. Проверка прав не сводится к ограничению допустимого множества параметров, хотя согласен, это типовой вариант.

мод3. Самое неправильное - это раздавать пользователям права на объекты БД (таблицы, вью и пр.), пользователи про БД вообще не должны ничего знать, даже про ее существование.
Я не вижу логики в сказанном Вами и не думаю, что обсуждение этого будет полезным.

Впрочем, мне слегка интересно, каким образом работает пользователь, если он не имеет прав на процедуры, через которые "вводятся параметры отчетов".
...
Рейтинг: 0 / 0
Распределение прав доступа в клиент-серверных приложениях. Сравнение подходов.
    #33691743
Фотография Dogen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В практике все сводится к реализации требования "дать пользователю доступ к тому, с чем ему положено работать по должности".

Проблемы же возникают потому, что список того, "с чем положено", не всегда удается получить в достаточно формализованном виде.

Все-таки, как насчет выдачи прав в соответствии с уровнем допуска?..


===============================================================================
Отвечать без смысла на это письмо. Сообщение направлено вам роботом доски объявлений.
...
Рейтинг: 0 / 0
Распределение прав доступа в клиент-серверных приложениях. Сравнение подходов.
    #33691874
мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarerВпрочем, мне слегка интересно, каким образом работает пользователь, если он не имеет прав на процедуры, через которые "вводятся параметры отчетов".
Я не раздаю права на процедуры. Грубо говоря, main может вызвать каждый, кто прошел авторизацию, дальше вызов пойдет по правам на функции программы. Если есть право на данный отчет, то процедуры ввода параметров вызовутся, а вот что через них можно ввести, определяется правами на данные.
...
Рейтинг: 0 / 0
Распределение прав доступа в клиент-серверных приложениях. Сравнение подходов.
    #33692053
ModelR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer ?Почти всегда, когда в систему закладывают ограничение доступа на уровне ядра, почти сразу за этим возникает требования предоставить функции запуска некоторых процедур с полномочиями, более высокими, чем есть у данного пользователя.
Безусловно, возникают. Именно такой случай мы и рассматриваем. Мое утверждение: такие случаи в целом обусловлены недостаточно хорошо выполненной постановкой задачи и недостаточно ответственным подходом к исправлению ошибок постановки. Грамотные и продуманные на эн лет вперед постановки - это было бы прекрасно. Но реально получится, что для нового отчета нужно переосмысливать ранее созданные представления, процедуры, создавать новые, отслеживать что в каком отчете используется, а также администратору возится с раздачей прав. Будет ли это надежней чем отладить отчет - вопрос...
softwarer мод1. К сожалению не всякий отчет сводится к вьюхе.
Разумеется. Это просто удобное слово-упрощение. Можно читать "любой объект - источник данных".И грань между отчетом и вьюхой стирается.

В общем одно место как-то все время расползается:( Хотя к идеалу стремиться конечно надо.
...
Рейтинг: 0 / 0
Распределение прав доступа в клиент-серверных приложениях. Сравнение подходов.
    #33692164
guest_20040621
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> Самое неправильное - это раздавать пользователям права на объекты БД

Вам противопоказано проектирование. Займитесь чем-нибудь попроще.
...
Рейтинг: 0 / 0
Распределение прав доступа в клиент-серверных приложениях. Сравнение подходов.
    #33692238
мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
guest_20040621
Свои советы оставьте при себе. Аргументы будут ?
...
Рейтинг: 0 / 0
Распределение прав доступа в клиент-серверных приложениях. Сравнение подходов.
    #33692868
guest_20040621
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> Аргументы будут ?

Нет.

Знаете, я бы рекомендовал Вам подписывать свои сообщения. На случай, если их прочтет работодатель. Это лучше любого резюме: они не содержат ничего, кроме пионерского задора и пионерской же глупости.

Нельзя столь уверенно нести чушь.
...
Рейтинг: 0 / 0
Распределение прав доступа в клиент-серверных приложениях. Сравнение подходов.
    #33694184
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ModelRГрамотные и продуманные на эн лет вперед постановки - это было бы прекрасно.
Но не является необходимым или хотя бы названным мной условием. Я нигде об этом не говорил и этого не подразумевал; предлагаю не уводить в сторону.

ModelRНо реально получится, что для нового отчета нужно переосмысливать ранее созданные
Вот это уже плохая постановка, плохо выполненное обследование. Ближе так: время от времени, при изменении бизнеса, нужно переосмысливать некую часть ранее сделанного. Нормальная и естественная задача сопровождения.

ModelRотслеживать что в каком отчете используется,
Нет. Это как раз при "отчетной" модели придется что-то отслеживать. Если права обрезают источники данных - на отчеты становится глубоко наплевать. Можно сотворить хоть тысячу отчетов, можно дать пользователю конструктор отчетов - все равно до скрытых от него данных он не доберется. И программист по рассеянности их ему не откроет.

ModelRа также администратору возится с раздачей прав.
Ничуть. У меня такое ощущение, что Вы сейчас попали в сеть одной вредной привычки - оценивать "другое решение", подсознательно рассматривая его через призму существующего, перенося на него накопленные рефлексы.

ModelRБудет ли это надежней чем отладить отчет - вопрос...
Отладить один источник данных заведомо надежнее, чем отладить N отчетов.

ModelRИ грань между отчетом и вьюхой стирается.
Непринципиально в данном случае. Отчет - это не источник данных; это в общем случае форма представления дополнительно обработанных данных из нескольких источников. Его можно рассматривать как вторичный источник данных, но в силу вторичности - данные в отчете специфически обрабатываются и фильтруются - у него мал коэффициент повторного использования.

Конечно, можно все на свете обозвать отчетом, но это сугубое теоретизирование.

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

ModelRВ общем одно место как-то все время расползается
Хм. Скажем так, по моим ощущениям расползаться склонно то, что сделано не на месте. Например, если изначально в одной подпрограмме сделали то, что надо было разделить на три - велика вероятность того, что треть ее кода захочется откопировать в другое место. Но правильным будет - выделить подпрограмму.
...
Рейтинг: 0 / 0
Распределение прав доступа в клиент-серверных приложениях. Сравнение подходов.
    #33694275
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
модЯ не раздаю права на процедуры.
В контексте дальнейшего я скорее понимаю это как "я каждому даю права на все процедуры".

модГрубо говоря, main может вызвать каждый, кто прошел авторизацию, дальше вызов пойдет по правам на функции программы.
Для этого есть ровно два пути - либо раздавать права на хранимки, либо полагаться только на собственный велосипед.

модЕсли есть право на данный отчет, то процедуры ввода параметров вызовутся, а вот что через них можно ввести, определяется правами на данные.
То есть, если я правильно понимаю, я беру старый-добрый SQL*Plus, подключаюсь к БД, чихая на все права на отчеты, запускаю "процедуры ввода параметров", и остается надеяться на то, что уж они-то не пустят меня к чужим данным.

Не вижу в этой схеме ничего правильного.
...
Рейтинг: 0 / 0
Распределение прав доступа в клиент-серверных приложениях. Сравнение подходов.
    #33695035
мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarerя беру старый-добрый SQL*Plus, подключаюсь к БД
Да, конечно, если пользователи могут прямо ходить в БД, то от них надо защищаться, раздавать права. При большом числе объектов БД это трудоемко. Проще, наверное, вообще лишить их всяких прав. Т.е. работать можно только через прикладнуху.
...
Рейтинг: 0 / 0
Распределение прав доступа в клиент-серверных приложениях. Сравнение подходов.
    #33695163
Фотография tygra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторПри большом числе объектов БД это трудоемко.
Если правильно сделать систему раздачи прав - нисколько не трудоемко. Несколько взмахов мышой и нажатий на клаву не такой уж большой труд :))

Не могу прокомментировать остальное - пытался следить за топиком, но не смог :)) Теперь уже не понять, что тут :)

По правам вообще - сейчас у нас система прав следующая: есть юзеры - они и логины sql-сервера и прикладные юзеры системы, есть группы юзеров - только прикладные группы, на группу выдаются права на визуальные объекты системы (формы, меню и т.д.) и на запуск ХП (кроме ХП больше ничего). Также есть ограничения бизнес-логики по юзерам или группам.
Чего бы изменить хотелось - группы иметь ролями сервера, тогда перегрантовывать права на каждую процедуру каждому юзеру не нужно, права выдаются один раз на роль. Ну и объекты, на которые действуют права, объединить логически в более обобщенные и уже на них прописывать права через софтину (проще получится админу)
Остальное удовлетворяет вроде пока.

-- Tygra's --
...
Рейтинг: 0 / 0
Распределение прав доступа в клиент-серверных приложениях. Сравнение подходов.
    #33698756
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
модДа, конечно, если пользователи могут прямо ходить в БД, то от них надо защищаться, раздавать права.
OK.

модПри большом числе объектов БД это трудоемко.
Не сказал бы. Раздача прав на один объект малозаметна на фоне разработки и тестирования этого одного объекта. Трудоемко - если сначала сделали кучу всего чер-те-как, а потом подумали, не раздать ли права.

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

1) Был надежен на уровне более чем "тупые пользователи"
2) Не обладал бы куда более существенными минусами, нежели стоимость раздачи прав.

Кроме того, такая постановка вопроса живет ровно до первого интеграционного проекта - когда начинается "а вот мы хотим подключаться к этой БД нашим генератором отчетов", или "мы хотим брать эти справочники для репликации в другую ИС" итп.
...
Рейтинг: 0 / 0
25 сообщений из 106, страница 4 из 5
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Распределение прав доступа в клиент-серверных приложениях. Сравнение подходов.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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