Создание политики безопасности
Вы можете ограничить доступ к экземплярам класса путем создания политики безопасности в модели данных. Пока вы не создадите хотя бы одну политику безопасности, доступ к экземплярам класса будет запрещен.
Доступ к экземпляру класса определяется на основании результатов запросов списка политик сервиса управления правами доступа и списка политик сервиса доступа к хранилищу данных. Если списки совпадают, решение о доступе к экземпляру класса принимается на основе наличия или запрета на выполнение пользователем определенных действий.
Вы можете создать политику безопасности для экземпляров класса после создания класса и создания атрибутов класса.
Для каждого класса вы можете создать несколько политик безопасности.
Чтобы создать политику безопасности:
-
В проекте выберите файл
DataModel.mdmodel. -
На боковой панели нажмите значок
и выберите раздел Классы.
-
В правой части рабочей области выберите вкладку Политики.
-
Справа от надписи Политики нажмите +.
-
В окне Политика безопасности, которое открывается, укажите следующие параметры:
-
Имя (обязательный параметр): введите название политики безопасности.
-
Псевдоним (обязательный параметр): введите псевдоним политики безопасности. Псевдоним будет использоваться для названия политики безопасности в базе данных.
При вводе значения этого параметра руководствуйтесь следующими требованиями:
- используйте латинские буквы, цифры и знак подчеркивания;
- не используйте цифру в качестве первого символа;
- вводите строку длиной не более 63 символов;
- не используйте системные имена C#.
-
Выражение (необязательный параметр): введите выражение на языке C# для описания условия доступа к экземпляру класса. В выражении используйте имена классов, атрибутов и перечислений.
примечаниеВ выражении вы не можете использовать атрибуты пользовательского типа, а также атрибуты типа MLString и Array.
Например, выражение для доступа к договорам в статусе завершен и суммой более 2 миллионов может иметь следующий вид:
_.State == State.Done && _.Sum > 2000000Примерами выражений для атрибута
strAtrтипаStringмогут быть следующие:-
выбор значений атрибута, начинающихся с подстроки
startString:_.strAttr.StartsWith("startString") -
выбор значений атрибута, содержащих подстроку
containString:_.strAttr.Contains("containString") -
выбор значений атрибута, совпадающих со строкой
equalString:_.strAttr.Equals("equalString") -
выбор значений атрибута, которые не являются пустыми:
!string.IsNullOrWhiteSpace(_.strAttr) -
выбор значений атрибутов, сумма которых превышает значение 2000:
(_.MyInt+_.HisInt)>2000
Пример выбора значения
BLUEатрибута, имеющего тип перечисленияColorEnum, записывается в виде следующей строки:_.color == ColorEnum.BLUEВ процессе ввода выражений встроенный в DevTools анализатор кода подсвечивает ошибки синтаксиса.
-
-
Наследовать политику в дочерних классах (необязательный параметр): установите флажок, если вы хотите, чтобы параметры настраиваемой политики наследовались политиками дочерних классов. По умолчанию флажок снят, что означает, что параметры политики не наследуются политиками дочерних классов, и в дочерних классах вы сможете создавать и настраивать политики отличные от политики родительского класса.
-
-
Нажмите Создать.
Окно Политика безопасности закрывается.
Созданная политика безопасности отображается в модели данных проекта в области подробной информации о классе на вкладке Политики.
-
Вверху справа нажмите Сохранить.
Доступ к экземплярам класса согласно настроенной политике безопасности будет реализован только после публикации модели данных проекта.
Теперь вы можете использовать созданную политику безопасности при настройке правил для роли пользователя.