← Назад ко всем вопросам

Как формируется набор разрешённых записей при использовании RLS

1️⃣ Как кратко ответить

RLS (Row-Level Security) в 1С формирует набор разрешённых записей на основе настроек прав доступа, определённых в конфигурации. Это достигается путём применения фильтров к данным, которые ограничивают видимость записей в зависимости от ролей и полномочий пользователя.

2️⃣ Подробное объяснение темы

RLS (Row-Level Security) — это механизм, который позволяет ограничивать доступ к данным на уровне строк в базе данных. В 1С это реализуется через систему прав доступа, которая позволяет задавать, какие записи пользователь может видеть или изменять в зависимости от его роли и полномочий.

Зачем это нужно

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

Как это работает

  1. Определение ролей и полномочий: В конфигурации 1С создаются роли, которые определяют, какие действия могут выполнять пользователи. Каждой роли назначаются определённые полномочия, которые включают доступ к объектам и данным.

  2. Настройка фильтров доступа: Для каждой роли можно задать фильтры, которые ограничивают доступ к данным. Эти фильтры определяют, какие записи пользователь может видеть или изменять. Например, фильтр может ограничивать доступ к записям, где поле "Менеджер" совпадает с текущим пользователем.

  3. Применение фильтров: Когда пользователь выполняет запрос к базе данных, система автоматически применяет соответствующие фильтры, чтобы определить, какие записи будут доступны. Это происходит на уровне платформы 1С, что обеспечивает прозрачность и безопасность.

Пример настройки RLS

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

  1. Создание роли "Менеджер": В конфигурации создаётся роль "Менеджер", которой назначаются права на чтение и изменение документов "Заказ клиента".

  2. Настройка фильтра доступа: Для роли "Менеджер" настраивается фильтр, который ограничивает доступ к заказам, где поле "Менеджер" равно текущему пользователю. Это можно сделать через механизм "Ограничения доступа" в конфигураторе 1С.

  3. Применение фильтра: Когда менеджер входит в систему и открывает список заказов, платформа 1С автоматически применяет фильтр, и менеджер видит только те заказы, которые ему назначены.

Пример кода

// Пример настройки фильтра доступа для роли "Менеджер"
&НаСервере
Процедура УстановитьФильтрДоступа(Пользователь)
    // Получаем текущего пользователя
    ТекущийПользователь = Пользователь;
​
    // Устанавливаем фильтр на документы "Заказ клиента"
    Фильтр = Новый Структура;
    Фильтр.Вставить("Менеджер", ТекущийПользователь);
​
    // Применяем фильтр
    УстановитьФильтр("Документ.ЗаказКлиента", Фильтр);
КонецПроцедуры
  • ТекущийПользователь = Пользователь; — Получаем текущего пользователя, чтобы использовать его в фильтре.
  • Фильтр = Новый Структура; — Создаём структуру для хранения условий фильтрации.
  • Фильтр.Вставить("Менеджер", ТекущийПользователь); — Добавляем условие, что поле "Менеджер" должно совпадать с текущим пользователем.
  • УстановитьФильтр("Документ.ЗаказКлиента", Фильтр); — Применяем фильтр к документам "Заказ клиента", чтобы ограничить доступ.

Таким образом, RLS в 1С позволяет гибко управлять доступом к данным, обеспечивая безопасность и соответствие бизнес-требованиям.

Тема: RLS и безопасность
Стадия: Tech

🔒 Подпишись на бусти автора и стань Алигатором, чтобы получить полный доступ к функционалу сайта и отслеживать свой прогресс!

Твои заметки