Скажем, у нас есть таблица информации, относящаяся к определенным моделям автомобилей, например:
Как лучше всего реализовать разрешения доступа на уровне поля для операций чтения и записи, если мне также нужно, чтобы правила настраивались пользователем? Я использую MSSQL Server 2016 и EF 6.
На основе этой таблицы мы можем иметь следующие варианты использования, которые описывают поля, видимые для определенной роли или группы:
1) Группа разрешений по умолчанию для общедоступных данных
2) Группа разрешений на основе сущностей
3) Пользовательская группа разрешений на основе полей
Требования заключаются в том, что скрытые данные должны отличаться от значений NULL, а правила/разрешения должны настраиваться пользователем. Мне также нужно разбивать списки, что требует правильной сортировки по видимым данным. Для этого мне нужен способ обработки типов данных. Например, год строительства - это значение, не равное null null, но когда поле не отображается, оно должно быть установлено на значение по умолчанию, такое как DateTime.MinValue. Это становится намного сложнее при работе с битовыми (булевыми) значениями: -)
В настоящее время я рассматриваю подход с табличными функциями, которые, как представляется, сложнее реализовать динамически для моего сценария или отдельным слоем кэширования, который содержит все данные, которые мне нужно будет синхронизировать с базой данных.