Перейти к основному содержимому

Создание политики безопасности

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

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

Вы можете создать политику безопасности для экземпляров класса после создания класса и создания атрибутов класса.

Для каждого класса вы можете создать несколько политик безопасности.

к сведению

Дочерний класс не наследует политику безопасности от родительского класса.

Чтобы создать политику безопасности:

  1. В проекте выберите файл DataModel.mdmodel.

  2. На боковой панели нажмите значок UG_settings_icon.png и выберите раздел Классы.

  3. В правой части рабочей области выберите вкладку Политики.

  4. Справа от надписи Политики нажмите +.

  5. В окне Политика безопасности, которое открывается, укажите следующие параметры:

    • Имя (обязательный параметр): введите название политики безопасности.

    • Псевдоним (обязательный параметр): введите псевдоним политики безопасности. Псевдоним будет использоваться для названия политики безопасности в базе данных.

      При вводе значения этого параметра руководствуйтесь следующими требованиями:

      • используйте латинские буквы, цифры и знак подчеркивания;
      • не используйте цифру в качестве первого символа;
      • вводите строку длиной не более 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 анализатор кода подсвечивает ошибки синтаксиса.

  6. Нажмите Создать.

    Окно Политика безопасности закрывается.

    Созданная политика безопасности отображается в модели данных проекта в области подробной информации о классе на вкладке Политики.

  7. Вверху справа нажмите Сохранить.

Доступ к экземплярам класса согласно настроенной политике безопасности будет реализован только после публикации проекта.

Теперь вы можете использовать созданную политику безопасности при настройке правил доступа пользовательской роли.