Поделиться через


Способы определения доступа к записи

Существуют различные способы получить доступ к определенной записи в Dataverse. Чтобы иметь возможность выполнить определенное действие с таблицей (создать, прочитать, записать, удалить, добавить, назначить, поделиться), выполняются две основные проверки: проверка прав и доступа.

Проверка привилегий

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

Например, привилегии учетной записи:

Привилегия Описание:
Создавать Необходимо для создания новой записи. То, какие записи будут доступны для создания, зависит от уровня доступа и разрешений, определенных в роли безопасности.
Читать Необходимо для открытия записи с целью просмотра содержимого. То, какие записи будут доступны для чтения, зависит от уровня доступа и прав, определенных в роли безопасности.
Писать Необходимо для внесения изменений в запись. То, какие записи можно изменять, зависит от уровня доступа и прав, определенных в роли безопасности.
Удалить Необходимо для окончательного удаления записи. То, какие записи можно удалять, зависит от уровня доступа и прав, определенных в роли безопасности.
Добавить Необходимо для связывания текущей записи с другой записью. Например, чтобы добавить примечание к возможной сделке, пользователь должен обладать разрешениями "Добавление" для примечания. То, к каким записям можно добавлять данные, зависит от уровня доступа и прав, определенных в роли безопасности.
В случае отношения "многие ко многим" у вас должны быть права на добавление для обеих таблиц, которые связываются или для которых отменяется связь.
Добавить к Необходимо для связывания записи с текущей записью. Например, имея права на добавление для возможной сделки, пользователь может добавлять примечания к возможной сделке. То, к каким записям можно добавлять данные, зависит от уровня доступа и прав, определенных в роли безопасности.
Назначать Необходимо для смены владельца записи. То, для каких записей можно назначать владельца, зависит от уровня доступа и разрешений, определенных в роли безопасности.
Делиться Необходимо для предоставления доступа к записи другому пользователю при сохранении собственного. То, к каким записям можно предоставлять общий доступ, зависит от уровня доступа и прав, определенных в роли безопасности.

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

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

Заметка

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

Проверка доступа

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

Существует четыре различных способа предоставления пользователю прав доступа для выполнения действия с определенной записью. Это следующие значения.

  • Ответственность
  • Доступ роли
  • Общий доступ
  • Доступ иерархии

Внимание

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

Владение

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

Заметка

Если пользователь принадлежит к группе, владеющей записью, он также имеет доступ к записи.

Доступ роли

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

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

Заметка

*Для ролей, назначенных командам с правами доступа базового уровня, также важна конфигурация наследования роли. Если у команды Наследование привилегий участника задано как Только привилегии рабочей группы, пользователь сможет использовать эту привилегию только для записей, принадлежащих группе. Для получения дополнительной информации см. Наследование привилегий участника рабочей группы.

Наследование привилегий участника

Общий доступ

Другой способ получить доступ к записи без явного назначения роли, позволяющей это сделать, — это общий доступ. Общий доступ получается, когда запись передается пользователю, группе или организации пользователем, имеющим соответствующие права на совместное использование. Есть пять способов, которыми пользователь может получить общий доступ к записи.

   
Запись была предоставлена пользователю напрямую. Если запись предоставляется пользователю для выполнения определенного действия, тогда пользователь будет иметь доступ для выполнения этого действия при условии, что пользователь прошел проверку прав.
Соответствующая запись была предоставлена пользователю напрямую Следующий сценарий имеет место, когда запись "A" связана с записью "B". Если у пользователя есть общий доступ для выполнения определенного действия с записью "A", он унаследовал бы доступ для выполнения того же действия с записью "B" при условии, что пользователь прошел проверку привилегий.
Запись была передана команде, к которой принадлежит пользователь. Если запись предоставляется группе для выполнения набора действий, пользователи, принадлежащие этой группе, будет иметь доступ для выполнения этих действий при условии, что они прошли проверку прав.
Соответствующая запись была предоставлена команде, к которой принадлежит пользователь. Следующий сценарий имеет место, когда запись "A" связана с записью "B". Если запись "A" используется совместно с командой для выполнения набора действий, а запись "A" связана с записью "B", то пользователи, принадлежащие к этой группе, будут иметь доступ для выполнения этих действий в обеих записях "A" и "B" при условии, что они прошли проверку привилегий.
Запись была предоставлена всей организации. Если запись предоставляется организации для выполнения набора действий, все пользователи, принадлежащие этой организации, будут способы выполнять эти действия при условии, что они прошли проверку прав.

Доступ иерархии

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

В этом случае пользователь получит доступ к записи, если выполнены оба следующих условия:

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

Проверка доступа к записи

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

Есть два параметра базы данных среды, которые нужно настроить для использования функции Кто имеет доступ. Установите инструмент OrganizationSettingsEditor и задайте для следующего параметра значение true:

  • IsAccessCheckerAllUsersEnabled: позволяет администратору видеть, кто имеет доступ к строке.
  • IsAccessCheckerNonAdminAllUsersEnabled: это позволяет администратору, владельцу записи и пользователям, имеющим доступ к строке, видеть, у кого есть доступ.

См. также

Роли и привилегии безопасности
Создать пользователей
Создайте или отредактируйте роль безопасности для управления доступом
Видео: функция проверки доступа