Безопасность на основе владения в Microsoft Dataverse

Dataverse предоставляет гибкую модель безопасности для многих бизнес-сценариев. Модель применяется только к средам с базой данных Dataverse. Администратор управляет пользователями, проверяет конфигурацию безопасности и устраняет проблемы с доступом.

Безопасность на основе ролей

Dataverse использует роли безопасности для группировки привилегий. Назначьте роли безопасности непосредственно пользователям или командам Dataverse. Члены команды получают привилегии, назначенные команде.

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

Бизнес-единицы

Просмотрите это видео, чтобы понять подразделения в Dataverse:

Бизнес-подразделения работают с ролями безопасности, чтобы определить доступ пользователя. Они определяют границы безопасности, которые помогают управлять пользователями и данными. Каждая база данных Dataverse имеет одну корневую бизнес-единицу.

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

В следующих примерах используются три бизнес-единицы. Woodgrove является корневой бизнес-единицей и остается в верхней части иерархии. Подразделения A и B являются дочерними бизнес-подразделениями. Пользователи каждого подразделения имеют разные потребности в доступе.

Иерархическая структура доступа к данным

Используйте иерархическую структуру для разделения пользователей и данных в древовидной иерархии.

Назначьте каждого пользователя одному бизнес-подразделению и назначьте пользователю роль безопасности из этого подразделения. По умолчанию подразделение пользователя владеет записями, создаваемыми пользователем. Роль безопасности определяет, к каким записям в этой бизнес-единице пользователь может получить доступ.

В этом примере пользователь A принадлежит разделу А и имеет роль безопасности Y из деления А. Пользователь A может получить доступ к контакту #1 и Контакту #2. Пользователь B принадлежит отделу B, поэтому пользователь B не может получить доступ к контактам Отдела А, но может получить доступ к контакту #3.

Схема иерархических бизнес-подразделений, где пользователь A имеет доступ к контактам подразделения A, а пользователь B — к контакту № 3 подразделения B.

Структура доступа к данным матрицы (модернизированные бизнес-единицы)

Используйте структуру матрицы для упорядочивания данных в виде дерева, позволяя пользователям получать доступ к данным в нескольких бизнес-единицах независимо от подразделения, к которому они относятся.

Назначьте пользователю роль безопасности из каждого подразделения, данные которого им нужны для доступа. Когда пользователь создает запись, он может выбрать подразделение, которое владеет им.

В этом примере пользователь A может принадлежать любому бизнес-подразделению, включая корневой бизнес-блок. Роль безопасности Y из подразделения A предоставляет пользователю A доступ к контактам #1 и #2. Роль безопасности Y из подразделения B предоставляет пользователю A доступ к контакту #3.

Схема, показывающая, как пользователь A получает доступ к контактам в подразделении A и подразделении B с помощью роли Y, назначенной каждым бизнес-подразделением.

Включение структуры доступа к данным матрицы

Заметка

Прежде чем включить эту функцию, опубликуйте все настройки, чтобы эта функция применялось к новым таблицам. Если неопубликованная таблица не работает после включения этой функции, используйте средство OrgDBOrgSettings для Microsoft Dynamics CRM, чтобы установить для true значение . Этот параметр позволяет задавать и обновлять столбец Владеющая бизнес-единица.

  1. Войдите в Центр администрирования Power Platform в качестве администратора Dynamics 365 или администратора Microsoft Power Platform.
  2. В области навигации выберите Управление.
  3. В области "Управление " выберите "Среды" и выберите среду.
  4. Выберите Параметры>Продукт>Функции.
  5. Включите владение записями в разных подразделениях.
  6. Нажмите Сохранить.

После включения функции выберите бизнес-подразделение при назначении роли безопасности пользователю. Этот параметр позволяет назначать роли из разных бизнес-подразделений пользователю. Для запуска приложений, управляемых моделью, пользователю также требуется роль из собственного бизнес-подразделения, включающего необходимые привилегии параметров пользователя. Роль "Базовый пользователь" показывает, какие права пользователя необходимо включить.

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

Заметка

Параметр EnableOwnershipAcrossBusinessUnits сохраняет состояние этой функции. Вы также можете изменить параметр с помощью средства OrgDBOrgSettings для Microsoft Dynamics CRM.

Связывание бизнес-подразделения с группой безопасности Microsoft Entra

Сопоставляйте бизнес-подразделения с Microsoft Entra группами безопасности, чтобы упростить управление пользователями и назначение ролей.

Создайте группу безопасности Microsoft Entra для каждого подразделения.

Для каждого подразделения:

  1. Создайте группу безопасности Microsoft Entra.
  2. Создайте группу группы Dataverse для группы безопасности.
  3. Назначьте команде группы Dataverse роль безопасности бизнес-подразделения.
  4. Добавьте пользователей в группу безопасности Microsoft Entra.

Когда пользователь сначала обращается к среде, Dataverse создает пользователя в корневой бизнес-единице. Группы пользователей и групп Dataverse могут оставаться в корневом бизнес-подразделении. Назначенные им роли безопасности предоставляют доступ к данным в соответствующих бизнес-подразделениях.

Чтобы получить доступ к данным матрицы, добавьте пользователей в группу безопасности Microsoft Entra для каждого подразделения, к который им требуется доступ.

Владение бизнес-подразделением

Каждая запись содержит столбец Подразделение-владелец, который указывает бизнес-единицу, которому принадлежит запись. Когда пользователь создает запись, столбец по умолчанию используется для бизнес-подразделения пользователя. Значение можно изменить только в том случае, если включен параметр Владение записями между бизнес-подразделениями.

Заметка

Изменение бизнес-подразделения может привести к каскадным изменениям. Дополнительные сведения см. в статье "Использование пакета SDK для .NET для настройки каскадного поведения".

Чтобы пользователь мог задать столбец «Владеющее бизнес-подразделение», предоставьте роли безопасности пользователя привилегию локального уровня «Добавление к» для таблицы «Бизнес-подразделение».

Добавьте столбец в:

Заметка

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

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

Владение таблицами и записями

Dataverse поддерживает два типа владения записью:

  • Организация принадлежит: Привилегия применяется ко всем записям или не применяется.
  • Принадлежит пользователю или команде: Большинство привилегий поддерживают уровни доступа на уровне пользователя, бизнес-подразделения, родительского и дочернего бизнес-подразделения и организации.

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

Если пользователь A принадлежит отделу А и имеет доступ на чтение на уровне бизнес-подразделения к таблице Контактов, пользователь A может читать Контакт #1 и Контакт #2, но не Контакт #3.

При настройке роли безопасности выберите уровень доступа для каждой привилегии.

Снимок экрана: привилегии роли безопасности и уровни доступа с выделенной таблицей Contact и стандартными столбцами привилегий.

Настройте стандартные привилегии таблицы отдельно: создание, чтение, запись, удаление, добавление, добавление, назначение и общийдоступ. Значок привилегий отображает предоставленный уровень доступа.

Владение записью в отфильтрованной таблице (предварительная версия)

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

Фильтрация владельцев записей позволяет администраторам управлять доступом к записям Dataverse с помощью фильтров по значениям столбцов. Например, предоставьте доступ только к записям, где City столбец равен Redmond. Пользователи могут создавать, читать, обновлять и удалять только записи, соответствующие фильтрам безопасности.

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

Заметка

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

Учет права собственности в модернизированных бизнес-единицах

С модернизацией бизнес-подразделений пользователи могут владеть записями в любом бизнес-подразделении. Пользователю требуется роль безопасности из любой бизнес-единицы, которая предоставляет права чтения для таблицы записей. Пользователю не нужна роль из каждой бизнес-единицы, в которой содержится запись, которой он владеет.

Если вы включили владение записями между бизнес-подразделениями в продуктивной среде в период предварительной версии:

  1. Установите редактор параметров организации.
  2. Установите для true значение . Система блокируется во время пересчета, что может занять до пяти минут. После пересчета пользователи могут владеть записями между подразделениями без отдельной роли безопасности для каждого подразделения. Владельцы записей также могут назначать записи пользователям за пределами бизнес-подразделения, которому принадлежит запись.
  3. Задайте для AlwaysMoveRecordToOwnerBusinessUnit значение false. Записи затем остаются в исходном бизнес-подразделении при изменении владения.

Для непроизводственных сред задайте для AlwaysMoveRecordToOwnerBusinessUnit значение false.

Заметка

Если вы отключите Record ownership across business units или зададите для false значение , вы не сможете задать или обновить значение столбца Owning Business Unit. Dataverse также изменяет бизнес-подразделение каждой затронутой записи в соответствии с бизнес-подразделением владельца записи.

Команды (включая команды группы)

Каждая команда принадлежит бизнес-подразделению. Dataverse автоматически создает группу по умолчанию для каждого подразделения и управляет ее членством. Команда по умолчанию всегда включает всех пользователей в бизнес-единицу. Невозможно вручную добавить или удалить его элементы. Dataverse обновляет членство при связывании или удалении пользователей с бизнес-подразделением.

Dataverse предоставляет два типа команд:

  • Команды-владельцы могут владеть записями. Каждый участник команды получает прямой доступ к записям команды. Пользователь может принадлежать нескольким командам владельцев.
  • Команды доступа предоставляют доступ к общим записям, но не владеют записями и не имеют ролей безопасности.

Общий доступ к записям

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

Используйте шаблон группы доступа, чтобы автоматически создать группу доступа и определить ее разрешения для записи. Вы также можете создавать группы доступа без шаблона и управлять своими участниками вручную. Команды доступа не владеют записями и не могут иметь роли безопасности. Участники группы получают доступ, так как запись предоставлена команде.

Безопасность уровня записи в Dataverse

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

Безопасность на уровне столбцов в Dataverse

Используйте безопасность на уровне столбцов, если безопасность на уровне записи не обеспечивает достаточного контроля. Включите его для всех настраиваемых столбцов и большинства системных столбцов. Большинство системных столбцов, содержащих персональные данные (PII), поддерживают безопасность на уровне столбцов. Метаданные системного столбца указывают, можно ли защитить его.

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

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

Управление безопасностью в нескольких средах

Используйте решения Dataverse для перемещения ролей безопасности и профилей безопасности столбцов между средами. Создание бизнес-подразделений и команд отдельно в каждой среде и управление ими. Необходимо также назначить пользователей соответствующим компонентам безопасности в каждой среде.

Настройка безопасности пользователей

После создания ролей, команд и бизнес-подразделений настройте доступ каждого пользователя:

  1. Свяжите пользователя с бизнес-подразделением. Dataverse использует корневую бизнес-единицу по умолчанию и добавляет пользователя в команду по умолчанию этого подразделения.
  2. Назначьте роли безопасности, необходимые пользователю.
  3. Добавьте пользователя в соответствующие команды.
  4. Если вы используете безопасность на уровне столбцов, назначьте пользователю или одной из команд профиль безопасности столбцов.

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

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

См. также