powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / База сайта. Обеспечение контроля доступа к данным.
25 сообщений из 70, страница 2 из 3
База сайта. Обеспечение контроля доступа к данным.
    #38833501
Кот Матроскин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arhat109 И уж тем более, постараться избежать доп. джойнов с таблицами прав

Зачем их избегать?
Я бы еще понял "избежать хранения таблиц прав". Но "избежать джойнов"....
...
Рейтинг: 0 / 0
База сайта. Обеспечение контроля доступа к данным.
    #38833502
Arhat109
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кот Матроскин,

чем проще - тем лучше. :)
...
Рейтинг: 0 / 0
База сайта. Обеспечение контроля доступа к данным.
    #38833510
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NoSQL базы данных прям придуманы для того, чтобы избежать джоинов ( тынц ). :)

Мы например accessLevel к документу храним в MongoDB, в самом документе.
...
Рейтинг: 0 / 0
База сайта. Обеспечение контроля доступа к данным.
    #38833512
Arhat109
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANA,

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

С NoSQL базами общался только с mumps, да и то давно и поверхностно... скажем так: "на сегодня" меня интересуют реляционные решения. :)
...
Рейтинг: 0 / 0
База сайта. Обеспечение контроля доступа к данным.
    #38833515
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arhat109skyANA,

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

С NoSQL базами общался только с mumps, да и то давно и поверхностно... скажем так: "на сегодня" меня интересуют реляционные решения. :)Хм. А почему не хотите хранить настройки безопасности в сторонке от БД?

Мы например храним accessLevel вместе с документом, потому как клиенты его сами редактируют.

А доступность того, или иного функционала определяется так:
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
<featureKey name="DoSomething">
  <accessPolicy type="allowIfAny">
    <rules>
      <accessRule identityRole="AccountAdmin, SystemAdmin" />
      <accessRule identityRole="SomeManager" specialCase="NewYearEvent" />
    </rules>
  </accessPolicy>
</featureKey>
...
Рейтинг: 0 / 0
База сайта. Обеспечение контроля доступа к данным.
    #38833517
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arhat109нормально отдает. И ваще, пашет с приемлемой скоростью.
Значит у Вас не должно быть проблем чтобы подождать пять секунд пока меняется ключ доступа
на 200 тысячах записей. Так в чём же проблема с вашими ключами тогда?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
База сайта. Обеспечение контроля доступа к данным.
    #38833518
Arhat109
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,

да, вы конечно правы. Можно и подождать 5 секунд... в общем, спасибо за помощь и участие в обсуждении.

(Что тут ничего и ни с кем толком нельзя обсуждать - я понял ещё со времен полемики с ЧАЛом)

В общем, спасибо и давайте закроем тему.
...
Рейтинг: 0 / 0
База сайта. Обеспечение контроля доступа к данным.
    #38833525
Arhat109
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANA,

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

Меня интересует плоскость "действие-данные", особенно в части организации RLS "на стороне данные"... и, поскольку данные - это РСУБД, то работа с ними - нижний уровень ПО (ядро), которое или находится в самой БД в виде ХП или это слой адаптера к БД ... самый нижний слой приложения. И ему должно быть "пофиг" хто запросил, чагой-т запросил...

Задача организовать перехват из верхних уровней так, чтобы его наличие было максимально прозрачно для верхнего уровня. В этой части разные джойны к таблицам прав - есть зло, поскольку в ряде случаев потребуется создание сложных, составных запросов, где "джойнить" надо будет к внутреннему телу подзапроса, и не первой свежести, пардон вложенности. Прикажете "парсить", чтобы приджойнить в нижнем уровне? (одно такое чудо в ХП - уже видел: парсер запроса силами Скуля, чтобы найти куда прилепить свою часть - нечто) :)

То есть, все эти решения - по сути крест на производительности. (призывы "обождать" - они все отсюдова. А нет другого способа. Пока нет.)
...
Рейтинг: 0 / 0
База сайта. Обеспечение контроля доступа к данным.
    #38833528
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arhat109,

Особенности в том, что часто к БД обращается по сути ровно один пользователь - apache. А, соответственно, система управления пользователями, вшитая в БД - неприменима. Можно, конечно создавать отдельного юзверя к БД на каждого посетителя сайта ... но таких решений как-то не довелось видеть пока что.

Никаких особенностей web тут нет.
Почти все системы на базе СУБД строятся по таким же принципам - с точки зрения СУБД все пользователи системы представлены одним пользователем СУБД.

и для того, чтобы все это сделать и делают внутри системы свою подсистему безопасности.
...
Рейтинг: 0 / 0
База сайта. Обеспечение контроля доступа к данным.
    #38833529
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arhat109skyANA,

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

Меня интересует плоскость "действие-данные", особенно в части организации RLS "на стороне данные"... и, поскольку данные - это РСУБД, то работа с ними - нижний уровень ПО (ядро), которое или находится в самой БД в виде ХП или это слой адаптера к БД ... самый нижний слой приложения. И ему должно быть "пофиг" хто запросил, чагой-т запросил...

Задача организовать перехват из верхних уровней так, чтобы его наличие было максимально прозрачно для верхнего уровня. В этой части разные джойны к таблицам прав - есть зло, поскольку в ряде случаев потребуется создание сложных, составных запросов, где "джойнить" надо будет к внутреннему телу подзапроса, и не первой свежести, пардон вложенности. Прикажете "парсить", чтобы приджойнить в нижнем уровне? (одно такое чудо в ХП - уже видел: парсер запроса силами Скуля, чтобы найти куда прилепить свою часть - нечто) :)

То есть, все эти решения - по сути крест на производительности. (призывы "обождать" - они все отсюдова. А нет другого способа. Пока нет.)Сделайте для своего адаптера к БД декаратор или прокси, что будут в запросы к БД добавлять ограничения безопасности. Тогда для верхнего уровня по сути вообще всё будет прозрачно.
...
Рейтинг: 0 / 0
База сайта. Обеспечение контроля доступа к данным.
    #38833542
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arhat109и опять в ответ тишина...

вопрос "слишком сложен" или "секретен"? Или я его изложил "слишком длинно" или "непонятно"? или все спецы "уже отдыхают"?

никто не откликнется? :)

во первых я нифига не понял из твоего опуса .

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


так что я считаю абсолютно бессмысленным любой разговор на эту тему.

ты можешь найти в сети описания других систем и поняв как это сделано у них взять и сделать похоже но по своему.

в первом приближении сделай так:

-перечисли все действия пользователей в системе.

- перечисли всех пользователей

-перечисли все объекты системы.

пользователь может совершать действие над объектом. строка из тех полей, так и хранишь.

далее думаешь, какие улучшения еще можно сделать относительно этого.
...
Рейтинг: 0 / 0
База сайта. Обеспечение контроля доступа к данным.
    #38833560
Arhat109
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivво первых я нифига не понял из твоего опуса ... во вторых я и не хочу особенно ничего понимать ... далее думаешь, какие улучшения еще можно сделать относительно этого.

Вот и думаю далее старых, добрых списков доступа ... :)

Впрочем, спасибо всем, первая часть вашего ответа (не понял И не хочу) объясняет почему тут обсуждать бессмысленно. Тока потеря времени.

Спасибо, ещё раз всем, тему можно закрыть.
...
Рейтинг: 0 / 0
База сайта. Обеспечение контроля доступа к данным.
    #38833584
guest_20040621
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> Переформулирую проблему, ибо она относится к большому классу решений:

Почти правильно сформулировано.

Готовых решений не существует, насколько мне известно, но вы достаточно близко подошли к хорошему варианту реализации. Совет: потратьте немного времени на изучение SELinux.
...
Рейтинг: 0 / 0
База сайта. Обеспечение контроля доступа к данным.
    #38833647
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arhat109,

а так не пойдет?
В ВИПРОС тоже с БД работает только ВИПРОС (если есть такая настройка (кроме dbowner), или все со своими правами в БД)
...
Рейтинг: 0 / 0
База сайта. Обеспечение контроля доступа к данным.
    #38833648
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arhat109,

а так не пойдет?
В ВИПРОС тоже с БД работает только ВИПРОС (если есть такая настройка (кроме dbowner), или все со своими правами в БД)
...
Рейтинг: 0 / 0
База сайта. Обеспечение контроля доступа к данным.
    #38833649
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
извиняюсь,как это удалось одним нажатием не знаю :(
...
Рейтинг: 0 / 0
База сайта. Обеспечение контроля доступа к данным.
    #38833703
Arhat109
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRos,

Пойдет и так, пойдет и как в SELinux ... это, скажем так, "верхний уровень" систем доступа, развитие "списков доступа" в сторону ролевых моделей.

Меня, сейчас, интересует НИЖНИЙ уровень, то что называют Row Level Security (пасибо Диме, не знал что оно ТАК называется) ... то есть атрибутирование каждой записи и формат такого атрибутирования, который позволил бы пользовать его "малой кровью", то есть без отдельных дополнительных выборок, джойнов и апдейтов ... идеально только дописывая свою часть WHERE в каждый запрос на выборку.
...
Рейтинг: 0 / 0
База сайта. Обеспечение контроля доступа к данным.
    #38833715
Arhat109
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Похоже совет Димы Сибирякова до меня таки дошел. Да, если бы в том случае присутствовало поле owner одновременно с ключами доступа - задача рашалась бы значительно проще... ну, тогда пока так и оставим.

Пасибки, не сразу "въехал" (старею). :)
...
Рейтинг: 0 / 0
База сайта. Обеспечение контроля доступа к данным.
    #38833716
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arhat109ViPRos,

Пойдет и так, пойдет и как в SELinux ... это, скажем так, "верхний уровень" систем доступа, развитие "списков доступа" в сторону ролевых моделей.

Меня, сейчас, интересует НИЖНИЙ уровень, то что называют Row Level Security (пасибо Диме, не знал что оно ТАК называется) ... то есть атрибутирование каждой записи и формат такого атрибутирования, который позволил бы пользовать его "малой кровью", то есть без отдельных дополнительных выборок, джойнов и апдейтов ... идеально только дописывая свою часть WHERE в каждый запрос на выборку.
я тебе там аж 2 типа фильтров показал (линейный и структурный (хотя можно все делать только через структурный)) :), которые автоматически дописываются к селекту в зависимости от роли и контекста
...
Рейтинг: 0 / 0
База сайта. Обеспечение контроля доступа к данным.
    #38833717
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arhat109,
owner - фигня, после него начнутся гранты, гранты грантов и т.д. ерунда по части делегации
...
Рейтинг: 0 / 0
База сайта. Обеспечение контроля доступа к данным.
    #38833727
Arhat109
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosя тебе там аж 2 типа фильтров показал (линейный и структурный (хотя можно все делать только через структурный)) :), которые автоматически дописываются к селекту в зависимости от роли и контекста

Фильтра заметил, а вот то что они "дописываются" - нет. :)

Вот, примерно из этой оперы что-то и ищу...

Дело в том, что моё старое изменение классической ролевой модели (дополнение ролей и действий политикой и контекстом исполнения: ТЗ от 2010г., реализация в 2011-2012г для sso.mediam.ru - студентом под моим надзором) вполне позволяет построить систему защиты так, чтобы принимать решения на уровне стороннего сервера ещё ДО начала обработки запроса. Примерно как в SELinux или других местах: есть отдельный сервер юзверей, доменов, политик, действий, контекста... который принимает запрос от базового сервера на исполнение действия и отдает ему контекст юзверя и политику запроса и подчиненных сразу, для кеширования и решение "можно или нельзя". Пока у базового сервера контекст и политика кешированы он, далее, сам принимает решения ... как только вышли за рамки кеша (переход на некешированный урл) - спрашивает заново (это чтобы часто не лазить). В базовом сервере до начала исполнения запроса (действия) работает "хелпер", который принимает решение по принципу пересечения контекста юзверя из кеша и запроса с параметрами... совпадает? можно, нет? "пошел нафик, с новым годом". Дабы кеш не раздувался непомерно (всего политиками для mediam.ru описано около 3500 урлов и контекстами около 5000 юзверей было на 2012год), есть его прокисание со временем. Сам хелпер минимизирован, там команд 30 на PHP "от силы"...

То есть там нет ваще никакого вмешательства в само исполнение запроса и тем более его обращений к БД. Защита полностью прозрачна для главного сервера.

Но, поскольку я не могу математически доказать полноту такой защиты ... хочется построить "дополнительный слой" ... и вот в качестве него, я и хочу сделать DAC или его разновидность. За неимением лучшего, пока остановился на традиционных ключах доступа и владельце записи.

Помнится у Вас был разработан собственный framework для работы с БД ... встраивание фильтров идет в процессе конструирования запросов (есть какой-то конструктор ... типа Zend_Db_Select или по типу Yii) или обеспечивается "перехват" готового запроса и его дополнение в едином месте (адаптер к БД) или это происходит на уровне логики в ХП, а все обращения только через АПИ этого набора ХП?
...
Рейтинг: 0 / 0
База сайта. Обеспечение контроля доступа к данным.
    #38833730
Arhat109
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дополню.

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

Например, я - администратор фирмы ХХХ. У меня пришел новый продажник, а стало быть заявки по части товаров теперь стали "его", а не того, другого продажника. Или мне надо открыть доступ к "спец товарам" для группы "мои покупатели" ... или известить только их о начале акции ... или и таких моментов - море! (и все они НЕ реализованы на большинстве товарно-ценовых порталов ... как раз в силу ущербности моделей данных в их основе)

То есть, делегирование прав - нормальное динамическое действие системы.

Решением расширенной ролевой модели - мне достаточно изменить группы, роли, контексты, политики ... то есть всё то, что НЕ относится к самим данным. Это - легко. А вот КАК потом перенастроить DAC оперативно для заданной пачки записей ...
...
Рейтинг: 0 / 0
База сайта. Обеспечение контроля доступа к данным.
    #38833733
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arhat109... встраивание фильтров идет в процессе конструирования запросов (есть какой-то конструктор ... типа Zend_Db_Select или по типу Yii) или обеспечивается "перехват" готового запроса и его дополнение в едином месте (адаптер к БД) или это происходит на уровне логики в ХП, а все обращения только через АПИ этого набора ХП?
1. Запросы конструируются и хранятся в составе метаданных до следующих изменений в метаданных.
2. При обращении в БД происходит динамическое изменение запроса с учетом прав. (Запросить воще то можно толко те типы, к которым есть права, а вот сужение прав по фильтрам происходит в самый последний момент).
3. Этот механизм может быть встроен в клиент или явяляться промежуточным звеном каким-то - вопрос технический.
4. Фильтры двух типов - список или лес. Первый обычный фильтр. Второй учитывает вложенности (т.е. можно задать - Предприятие1, Цех1, Участо1, Участок И Предприятие1,Цех2 - тогда все записи ссылающиеся на нижестоящие от Участок1, участок2 и Цех2 включая будт доступны).
...
Рейтинг: 0 / 0
База сайта. Обеспечение контроля доступа к данным.
    #38833736
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arhat109Дополню.

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

Например, я - администратор фирмы ХХХ. У меня пришел новый продажник, а стало быть заявки по части товаров теперь стали "его", а не того, другого продажника. Или мне надо открыть доступ к "спец товарам" для группы "мои покупатели" ... или известить только их о начале акции ... или и таких моментов - море! (и все они НЕ реализованы на большинстве товарно-ценовых порталов ... как раз в силу ущербности моделей данных в их основе)

То есть, делегирование прав - нормальное динамическое действие системы.

Решением расширенной ролевой модели - мне достаточно изменить группы, роли, контексты, политики ... то есть всё то, что НЕ относится к самим данным. Это - легко. А вот КАК потом перенастроить DAC оперативно для заданной пачки записей ...

Есть 3 возможности.
1. Клонирование Ролей и замена фильтра (с дополнительным вводом классифицирующего признака в запись - вплоть до "Запись для Роли".
2. Создание нового типа со сылкой 1:1 к основному и стаскивание всех нужных записей во второю а в Роли права только на новый тип (Всегда джойнится с основной при выборке автоматом).
3. Изначальное создание (разбиение) типов (никуда не ссылаются, имеют некоторое множество одинкаовых свойств) под роли и введение в агрегриующий классификатор. При запросе такого классификатора автомтически запускается юнион для совпадающих свойств.

можно еще поизгаляться, а эти встроены в ВИПРОС и пока на все вопросы отвечают.
...
Рейтинг: 0 / 0
База сайта. Обеспечение контроля доступа к данным.
    #38833740
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
пшел спать :)
...
Рейтинг: 0 / 0
25 сообщений из 70, страница 2 из 3
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / База сайта. Обеспечение контроля доступа к данным.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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