Перейти к основному содержимому
Версия: 1.21.3

Типы правил контроля доступа

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

Правила для записей


Правила контроля доступа к записям включают наименования таблиц и полей.

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

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

ОперацияОписание
СозданиеПозволяет пользователям создавать новые записи в таблице.
ЧтениеПозволяет пользователям просматривать записи в таблице.
ЗаписьПозволяет пользователям редактировать записи в таблице.
УдалениеПозволяет пользователям удалять записи в таблице.

Правила контроля доступа обрабатываются в следующем порядке:

  1. Правила контроля доступа к таблицам.
  2. Правила контроля доступа к полям.

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

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

Правила для таблиц


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

Правила контроля доступа для таблиц обрабатываются в следующем порядке:

  1. Таблица. Например, Инциденты.
  2. Родительская таблица. В приведенном примере это таблица Задачи.
  3. Соответствие любому наименованию таблицы (*).

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

Правила для полей


Когда пользователь соответствует правилу контроля доступа таблицы, правила контроля доступа для полей обрабатываются в следующем порядке:

  1. Наименование таблицы и поля. Например, incident.number.
  2. Наименование родительской таблицы и поля. Например, task.number, родительская таблица для Инциденты.
  3. Наименование любой таблицы (*) и конкретное поле. Например, *.number.
  4. Конкретная таблица и любое поле (*). Например, incident.*.
  5. Родительская таблица и любое поле. Например, task.*.
  6. Любая таблица (*) и любое поле (*). Например, *.*.

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

Если пользователь удовлетворяет первое правило контроля доступа поля, проверка правил останавливается на уровне полей: система перестает искать подходящие правила поля. Например, если пользователь удовлетворяет условия правила для поля incident.number, система прекращает поиск других правил контроля доступа, защищающих поле Номер в таблице Инциденты. Таким образом выполняется только один шаг.