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

Как RLS работает в распределённых базах и при обменах

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

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

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

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

Зачем нужен RLS

RLS необходим для того, чтобы:

  • Ограничить доступ пользователей к определённым данным в зависимости от их роли или полномочий.
  • Обеспечить соблюдение политик безопасности и конфиденциальности.
  • Уменьшить риск несанкционированного доступа к данным.

Как работает RLS в распределённых базах

В распределённых базах данных 1С, RLS применяется на уровне каждой отдельной базы. Это означает, что каждая база данных может иметь свои собственные настройки безопасности, которые определяют, какие записи доступны для конкретных пользователей.

Пример работы RLS

Предположим, у нас есть две распределённые базы данных: База1 и База2. В каждой из них настроены свои правила RLS.

  1. Настройка RLS в Базе1:

    • Пользователь "Менеджер" может видеть только записи, относящиеся к его отделу.
  2. Настройка RLS в Базе2:

    • Пользователь "Аналитик" может видеть все записи, но без доступа к конфиденциальным полям.

RLS при обменах данными

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

Пример обмена с RLS

  • Исходная база (База1): Отправляет данные, которые могут включать записи всех отделов.
  • Целевая база (База2): При получении данных применяет свои правила RLS, например, скрывает конфиденциальные поля для пользователя "Аналитик".

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

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

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

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

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

Твои заметки