Как формируется набор разрешённых записей при использовании RLS
1️⃣ Как кратко ответить
RLS (Row-Level Security) в 1С формирует набор разрешённых записей на основе настроек прав доступа, определённых в конфигурации. Это достигается путём применения фильтров к данным, которые ограничивают видимость записей в зависимости от ролей и полномочий пользователя.
2️⃣ Подробное объяснение темы
RLS (Row-Level Security) — это механизм, который позволяет ограничивать доступ к данным на уровне строк в базе данных. В 1С это реализуется через систему прав доступа, которая позволяет задавать, какие записи пользователь может видеть или изменять в зависимости от его роли и полномочий.
Зачем это нужно
RLS используется для обеспечения безопасности данных и соблюдения бизнес-логики. Например, в компании может быть необходимо, чтобы менеджеры видели только свои заказы, а не заказы других менеджеров. Это помогает предотвратить несанкционированный доступ к конфиденциальной информации и поддерживать целостность данных.
Как это работает
-
Определение ролей и полномочий: В конфигурации 1С создаются роли, которые определяют, какие действия могут выполнять пользователи. Каждой роли назначаются определённые полномочия, которые включают доступ к объектам и данным.
-
Настройка фильтров доступа: Для каждой роли можно задать фильтры, которые ограничивают доступ к данным. Эти фильтры определяют, какие записи пользователь может видеть или изменять. Например, фильтр может ограничивать доступ к записям, где поле "Менеджер" совпадает с текущим пользователем.
-
Применение фильтров: Когда пользователь выполняет запрос к базе данных, система автоматически применяет соответствующие фильтры, чтобы определить, какие записи будут доступны. Это происходит на уровне платформы 1С, что обеспечивает прозрачность и безопасность.
Пример настройки RLS
Рассмотрим пример, где необходимо ограничить доступ к документам "Заказ клиента" так, чтобы менеджеры видели только свои заказы.
-
Создание роли "Менеджер": В конфигурации создаётся роль "Менеджер", которой назначаются права на чтение и изменение документов "Заказ клиента".
-
Настройка фильтра доступа: Для роли "Менеджер" настраивается фильтр, который ограничивает доступ к заказам, где поле "Менеджер" равно текущему пользователю. Это можно сделать через механизм "Ограничения доступа" в конфигураторе 1С.
-
Применение фильтра: Когда менеджер входит в систему и открывает список заказов, платформа 1С автоматически применяет фильтр, и менеджер видит только те заказы, которые ему назначены.
Пример кода
// Пример настройки фильтра доступа для роли "Менеджер"
&НаСервере
Процедура УстановитьФильтрДоступа(Пользователь)
// Получаем текущего пользователя
ТекущийПользователь = Пользователь;
// Устанавливаем фильтр на документы "Заказ клиента"
Фильтр = Новый Структура;
Фильтр.Вставить("Менеджер", ТекущийПользователь);
// Применяем фильтр
УстановитьФильтр("Документ.ЗаказКлиента", Фильтр);
КонецПроцедуры
- ТекущийПользователь = Пользователь; — Получаем текущего пользователя, чтобы использовать его в фильтре.
- Фильтр = Новый Структура; — Создаём структуру для хранения условий фильтрации.
- Фильтр.Вставить("Менеджер", ТекущийПользователь); — Добавляем условие, что поле "Менеджер" должно совпадать с текущим пользователем.
- УстановитьФильтр("Документ.ЗаказКлиента", Фильтр); — Применяем фильтр к документам "Заказ клиента", чтобы ограничить доступ.
Таким образом, RLS в 1С позволяет гибко управлять доступом к данным, обеспечивая безопасность и соответствие бизнес-требованиям.
🔒 Подпишись на бусти автора и стань Алигатором, чтобы получить полный доступ к функционалу сайта и отслеживать свой прогресс!
Подписаться