Создание политики безопасности
Вы можете ограничить доступ к экземплярам класса путем создания политики безопасности в модели данных. Пока вы не создадите хотя бы одну политику безопасности, доступ к экземплярам класса будет запрещен.
Доступ к экземпляру класса определяется на основании результатов запросов списка политик сервиса безопасности и списка политик сервиса доступа к данным. Если списки совпадают, решение о доступе к экземпляру класса принимается на основе наличия или запрета на выполнение пользователем определенных действий.
Вы можете создать политику безопасности для экземпляров класса после создания класса и создания атрибутов класса.
Для каждого класса вы можете создать несколько политик безопасности.
Дочерний класс не наследует политику безопасности от родительского класса.
Чтобы создать политику безопасности:
В проекте выберите файл
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 анализатор кода подсвечивает ошибки синтаксиса.
Нажмите Создать.
Окно Политика безопасности закрывается.
Созданная политика безопасности отображается в модели данных проекта в области подробной информации о классе на вкладке Политики.
Вверху справа нажмите Сохранить.
Доступ к экземплярам класса согласно настроенной политике безопасности будет реализован только после публикации проекта.
Теперь вы можете использовать созданную политику безопасности при настройке правил доступа пользовательской роли.