Типы правил контроля доступа
Правила контроля доступа могут быть применены к разным компонентам: з аписям, таблицам, полям.
Правила для записей
Правила контроля доступа к записям включают наименования таблиц и полей.
- Наименование таблицы указывает таблицу, которую необходимо защитить. Если у нее есть расширяющие таблицы, тогда эта таблица – родительская. Правила контроля доступа работают также на дочерних таблицах.
- Наименование поля указывает поле, которое необходимо защитить. В результате расширения таблиц, некоторые таблицы могут иметь те же самые поля. Правила контроля доступа для определенного поля родительской таблицы работают также на дочерних таблицах.
Правила могут ограничивать доступ к операциям, перечисленным в таблице ниже. Подробнее читайте в статье Правила контроля доступа.
Операция | Описание |
---|---|
Создание | Позволяет пользователям создавать новые записи в таблице. |
Чтение | Позволяет пользователям прос матривать записи в таблице. |
Запись | Позволяет пользователям редактировать записи в таблице. |
Удаление | Позволяет пользователям удалять записи в таблице. |
Правила контроля доступа обрабатываются в следующем порядке:
- Правила контроля доступа к таблицам.
- Правила контроля доступа к полям.
Этот порядок устанавливает иерархию: сначала пользователи получают доступ к более общему объекту, а затем к конкретному. Чтобы получить доступ к записи, пользователи должны соответствовать правилам доступа таблиц и полей.
- Если у пользователя нет доступа к таблице, то у него нет доступа ко всем полям, даже если пользователь удовлетворяет условиям, заданным в правиле поля.
- Если у пользователя есть доступ к таблице, но по правилу нет доступа к полям, то доступ к полям будет запрещен.
Правила для таблиц
Для начала пользователь должен соответствовать условиям правила контроля доступа. В систему включены правила с подстановочным знаком звездочки (*), которые соответствуют любой таблице или колонке. Поэтому пользователь всегда должен соответствовать по крайней мере одному правилу контроля доступа таблицы. Доступ к определенным таблицам защищен дополнительными правилами.
Правила контроля доступа для таблиц обрабатываются в следующем порядке:
- Таблица. Например, Инциденты.
- Родительская таблица. В приведенном примере это таблица Задачи.
- Соответствие любому наименованию таблицы (*).
Если пользователь не соответствует ни одному из правил, доступ ко всем полям в любых таблицах ограничивается. Если пользователь проходит проверку, он должен пройти правила поля ACL.
Правила для полей
Когда пользователь соответствует правилу контроля доступа таблицы, правила контроля доступа для полей обрабатываются в следующем порядке:
- Наименование таблицы и поля. Например, incident.number.
- Наименование родительской таблицы и поля. Например, task.number, родительская таблица для Инциденты.
- Наименование любой таблицы (*) и конкретное поле. Например, *.number.
- Конкретная таблица и любое поле (*). Например, incident.*.
- Родительская таблица и любое поле. Например, task.*.
- Любая таблица (*) и любое поле (*). Например, *.*.
Пользователи должны соответствовать правилу контроля доступа для поля. Иначе доступ к полям таблицы ограничивается. Например, пользователь хочет получить доступ к полю Номер в таблице Инциденты. В таком случае он должен сначала удовлетворить правило контроля доступа таблицы.
Если пользователь удовлетворяет первое правило контроля доступа поля, проверка правил останавливается на уровне полей: система перестает искать подходящие правила поля. Например, если пользователь удовлетворяет условия правила для поля incident.number, система прекращает поиск других правил контроля дос тупа, защищающих поле Номер в таблице Инциденты. Таким образом выполняется только один шаг.