Yandex Cloud
  • Сервисы
  • Решения
  • Почему Yandex Cloud
  • Сообщество
  • Тарифы
  • Документация
  • Связаться с нами
Подключиться
Language / Region
Проект Яндекса
© 2023 ООО «Яндекс.Облако»
Yandex DataLens
  • Начало работы
  • Практические руководства
    • Все руководства
    • Визуализация данных из CSV-файла
    • Создание и публикация диаграммы с картой Москвы из CSV-файла
    • Анализ продаж сети магазинов из БД ClickHouse
    • Анализ открытых данных ДТП на дорогах России
    • Анализ продаж и локаций пиццерий на данных из БД ClickHouse и Marketplace
    • Веб-аналитика с подключением к Яндекс Метрике
    • Веб-аналитика с расчетом воронок и когорт на данных Яндекс Метрики
    • Аналитика мобильного приложения на данных AppMetrica
    • Анализ статистики подкастов Яндекс Музыки (для авторов подкастов)
    • Визуализация данных с помощью QL-чарта
    • Визуализация данных с использованием параметров
    • Визуализация данных Yandex Monitoring
    • Построение чартов customer journeys на данных AppMetrica
    • Создание подключения к Битрикс24
  • Концепции
    • Обзор сервиса
    • Организации в DataLens
    • Подключение
    • Типы данных
    • Датасет
      • Обзор
      • Модель данных
      • Настройки датасета
    • Чарт
      • Обзор
      • Настройки чарта
      • Measure Values и Measure Names
    • Дашборд
    • Объединение данных
    • Использование Markdown в DataLens
    • DataLens Public
    • Вычисляемые поля
      • Обзор
      • Синтаксис формул
    • Параметризация
    • Marketplace
    • Резервное копирование
    • Кеширование
    • Квоты и лимиты
  • Пошаговые инструкции
    • Все инструкции
    • Работа с подключениями
      • Создание подключения к ClickHouse
      • Создание подключения к файлу
      • Создание подключения к Google Sheets
      • Создание подключения к MySQL
      • Создание подключения к PostgreSQL
      • Создание подключения к SQL Server
      • Создание подключения к BigQuery
      • Создание подключения к Oracle Database
      • Создание подключения к YDB
      • Создание подключения к Greenplum®
      • Создание подключения к Prometheus
      • Создание подключения к Yandex Monitoring
      • Создание подключения к Битрикс24
      • Создание подключения к подкастам Яндекс Музыки
      • Создание подключения к Metrica API
      • Создание подключения к AppMetrica
      • Создание подключения к Yandex Cloud Billing
      • Управление доступом к подключению
    • Работа с датасетами
      • Создание датасета
      • Объединение данных из нескольких таблиц
      • Создание поля данных
      • Создание вычисляемого поля данных
      • Создание фильтра по умолчанию для новых чартов
      • Обновление полей в датасете
      • Описание датасета через SQL-запрос к источнику
      • Управление доступом к датасету
      • Управление доступом к строкам данных
      • Добавление параметра в датасет
    • Работа с чартами
      • Создание чарта
      • Создание QL-чарта
      • Создание мультидатасетного чарта
      • Добавление иерархии
      • Настройка навигатора
      • Публикация чарта
      • Управление доступом к чарту
      • Добавление ID в качестве параметра
      • Добавление параметра в чарт
      • Настройка отображения пустых (null) значений
      • Создание цветовой палитры
    • Работа с дашбордами
      • Создание дашборда
      • Добавление описания к дашборду
      • Добавление сообщения при обращении в поддержку
      • Добавление сообщения при ошибке доступа
      • Добавление чарта на дашборд
      • Добавление селектора на дашборд
      • Создание алиаса
      • Удаление поля алиаса
      • Публикация дашборда
      • Управление доступом к дашборду
      • Добавление параметров на дашборд
      • Автообновление дашборда
      • Порядок отображения виджетов на мобильном устройстве
    • Работа с правами доступа
      • Назначение прав доступа
      • Удаление прав доступа
      • Запрос прав доступа
    • Работа с DataLens Marketplace
      • Добавление продукта из Marketplace
      • Удаление продукта из Marketplace
      • Создание и подключение коннектора (для партнеров)
    • Работа с организациями
      • Переключение между экземплярами DataLens
  • Управление доступом
    • Управление доступом к DataLens
    • Управление доступом на уровне строк данных
  • Правила тарификации
  • Справочник визуализаций
    • Все визуализации
    • Линейная диаграмма
    • Накопительная диаграмма с областями
    • Нормированная диаграмма с областями
    • Столбчатая диаграмма
    • Нормированная столбчатая диаграмма
    • Линейчатая диаграмма
    • Нормированная линейчатая диаграмма
    • Точечная диаграмма
    • Круговая диаграмма
    • Индикатор
    • Древовидная диаграмма
    • Кольцевая диаграмма
    • Таблица
    • Сводная таблица
    • Карта
      • Обзор
      • Точечная карта
      • Точечная карта с кластеризацией
      • Полилинейная карта
      • Фоновая карта
      • Тепловая карта
    • Комбинированная диаграмма
  • Справочник функций
    • Все функции
    • Агрегатные функции
      • Обзор
      • ALL_CONCAT
      • ANY
      • ARG_MAX
      • ARG_MIN
      • AVG
      • AVG_IF
      • COUNT
      • COUNTD
      • COUNTD_APPROX
      • COUNTD_IF
      • COUNT_IF
      • MAX
      • MEDIAN
      • MIN
      • QUANTILE
      • QUANTILE_APPROX
      • STDEV
      • STDEVP
      • SUM
      • SUM_IF
      • TOP_CONCAT
      • VAR
      • VARP
    • Логические функции
      • Обзор
      • CASE
      • IF
      • IFNULL
      • ISNULL
      • ZN
    • Математические функции
      • Обзор
      • ABS
      • ACOS
      • ASIN
      • ATAN
      • ATAN2
      • CEILING
      • COMPARE
      • COS
      • COT
      • DEGREES
      • DIV
      • EXP
      • FLOOR
      • GREATEST
      • LEAST
      • LN
      • LOG
      • LOG10
      • PI
      • POWER
      • RADIANS
      • ROUND
      • SIGN
      • SIN
      • SQRT
      • SQUARE
      • TAN
    • Оконные функции
      • Обзор
      • AVG
      • AVG_IF
      • COUNT
      • COUNT_IF
      • FIRST
      • LAG
      • LAST
      • MAVG
      • MAX
      • MCOUNT
      • MIN
      • MMAX
      • MMIN
      • MSUM
      • RANK
      • RANK_DENSE
      • RANK_PERCENTILE
      • RANK_UNIQUE
      • RAVG
      • RCOUNT
      • RMAX
      • RMIN
      • RSUM
      • SUM
      • SUM_IF
    • Операторы
      • Обзор
      • AND
      • BETWEEN
      • IN
      • IS FALSE
      • IS TRUE
      • LIKE
      • NOT
      • OR
      • Вычитание (-)
      • Деление (/)
      • Остаток (%)
      • Отрицание (-)
      • Сложение и конкатенация (+)
      • Сравнение
      • Степень (^)
      • Умножение (*)
    • Строковые функции
      • Обзор
      • ASCII
      • CHAR
      • CONCAT
      • CONTAINS
      • ENDSWITH
      • FIND
      • ICONTAINS
      • IENDSWITH
      • ISTARTSWITH
      • LEFT
      • LEN
      • LOWER
      • LTRIM
      • REGEXP_EXTRACT
      • REGEXP_EXTRACT_NTH
      • REGEXP_MATCH
      • REGEXP_REPLACE
      • REPLACE
      • RIGHT
      • RTRIM
      • SPACE
      • SPLIT
      • STARTSWITH
      • SUBSTR
      • TRIM
      • UPPER
      • UTF8
    • Функции даты и времени
      • Обзор
      • DATEADD
      • DATEPART
      • DATETRUNC
      • DAY
      • DAYOFWEEK
      • HOUR
      • MINUTE
      • MONTH
      • NOW
      • QUARTER
      • SECOND
      • TODAY
      • WEEK
      • YEAR
    • Функции для работы с временными рядами
      • Обзор
      • AGO
      • AT_DATE
    • Функции для работы с массивами
      • Обзор
      • ARRAY
      • ARR_AVG
      • ARR_MAX
      • ARR_MIN
      • ARR_PRODUCT
      • ARR_REMOVE
      • ARR_STR
      • ARR_SUM
      • CAST_ARR_FLOAT
      • CAST_ARR_INT
      • CAST_ARR_STR
      • CONTAINS
      • COUNT_ITEM
      • GET_ITEM
      • REPLACE
      • SLICE
      • STARTSWITH
      • UNNEST
    • Функции преобразования типов
      • Обзор
      • BOOL
      • DATE
      • DATETIME
      • DATETIME_PARSE
      • DATE_PARSE
      • DB_CAST
      • FLOAT
      • GEOPOINT
      • GEOPOLYGON
      • INT
      • STR
    • Функции разметки
      • Обзор
      • BOLD
      • ITALIC
      • MARKUP
      • URL
    • Поддержка функций
  • Туториалы по функциям
    • Агрегатные функции
    • Оконные функции
    • LOD-выражения и управление фильтрацией в агрегатных функциях
  • Образовательные проекты
  • Решение проблем
    • Вопросы и ответы
    • Ошибки DataLens
  1. Управление доступом
  2. Управление доступом на уровне строк данных

Управление доступом на уровне строк данных (RLS)

Статья создана
Yandex Cloud
,
улучшена
  • Настройка RLS на уровне датасета
  • Настройка RLS на уровне источника данных
  • Как изменить права доступа к строке в датасете

RLS (Row-level security — безопасность на уровне строк) позволяет ограничить доступ к данным для пользователей в рамках одного датасета. Например, вы можете разграничить доступ разным клиентам.

Важно

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

  • В RLS поддерживается разграничение доступа только для строковых значений.

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

Настройка RLS на уровне датасета

Вы можете разграничить доступ к любому измерению датасета. Каждому пользователю могут быть выданы права на неограниченное количество значений измерений.

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

'значение_1': пользователь_1, пользователь_2
'значение_2': пользователь_3
'значение_3': пользователь_1, пользователь_2, пользователь_3

Например, чтобы настроить доступ пользователя к значению first-company поля Company name, задайте конфигурацию:

'first-company': login-to-access-your-row-data@yandex.ru

Чтобы настроить доступ для нескольких пользователей, перечислите через запятую их аккаунты в конфигурации доступа:

'first-company': login1-to-access-your-row-data@yandex.ru, login2-to-access-your-row-data@yandex.ru, login3-to-access-your-row-data@yandex.ru

Значения и пользователей можно определять символом подстановки:

  • Пользователям пользователь_1 и пользователь_2 доступны все значения поля

    *: пользователь_1, пользователь_2
    

    Например, чтобы настроить доступ для пользователей ко всем значениям поля Company name, задайте конфигурацию:

    *: login1-to-access-your-row-data@yandex.ru, login2-to-access-your-row-data@yandex.ru
    
  • Значение значение_1 доступно всем пользователям

    'значение_1': *
    

    Например, чтобы разрешить доступ для всех пользователей к значению first-company поля Company name, задайте конфигурацию:

    'first-company': *
    

Кавычки в значении задаются удвоением:

'значение в ''кавычках''': пользователь_1, пользователь_2

Например, чтобы установить кавычки для названия компании first-company "Example" поля Company name, задайте конфигурацию:

'first-company ''Example''': login1-to-access-your-row-data@yandex.ru, login2-to-access-your-row-data@yandex.ru

Также можно использовать символ ":

'first-company "Example"': login1-to-access-your-row-data@yandex.ru, login2-to-access-your-row-data@yandex.ru

При использовании RLS запросы к датасету проходят через следующий фильтр:

where измерение in (значение_1, значение_2 ... значение_N)

Настройка RLS на уровне источника данных

Настройка RLS на уровне датасета предполагает его редактирование при каждом изменении настроек RLS.

Чтобы избежать этого, можно перенести логику разграничения прав доступа на уровне строк на сторону источника данных:

  1. В исходные данные добавьте новое поле для хранения id пользователя. По этому полю будет происходить фильтрация всех запросов в источник.

    Свой id можно посмотреть по ссылке. Если вам нужен id другого пользователя, попросите его открыть эту ссылку и передать id вам.

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

  3. В датасете в поле с id в настройках RLS введите userid:userid. Переменную userid можно использовать в сочетании с обычным типом RLS в датасете:

    'значение_1': пользователь_1, пользователь_2
    'значение_2': пользователь_3
       userid:userid
    

Примечание

Перенос логики RLS на сторону источника возможен для источников, в которых доступно изменение структуры данных. В Metrica и AppMetrica структура данных закрыта, поэтому этот способ неприменим.

Как изменить права доступа к строке в датасете

Чтобы настроить права доступа к значению строки данных:

В датасете
В источнике
  1. Откройте датасет.

  2. В правой части строки нажмите значок и выберите Права доступа.

  3. Введите значение поля и пользователей в указанном формате и нажмите Сохранить.

    'значение_1': пользователь_1, пользователь_2
    'значение_2': пользователь_3
    

    Например, чтобы настроить доступ к значению first-company для поля Company name:

    'first-company': login-to-access-your-row-data@yandex.ru
    
  4. Сохраните датасет.

  1. Добавьте в источнике поле с id пользователей, по которому будет осуществляться фильтрация. Вы можете добавить это поле в новую таблицу и присоединить ее с помощью оператора JOIN.
  2. Добавьте поле в датасет.
  3. Откройте датасет.
  4. В правой части строки нажмите значок и выберите Права доступа.
  5. В настройках прав доступа к полю допишите userid:userid и нажмите Сохранить.
  6. Сохраните датасет.
Пример

Построим дашборд по данным продаж в разрезе 4 регионов (Запад, Восток, Север, Юг). Каждый региональный менеджер должен иметь доступ только к своим данным, руководитель компании ко всем.

1. Определим id для пользователей.
2. Создадим в источнике дополнительную таблицу MANAGER_ID, в которой регион соотносится с id пользователя. Если для одного id доступны несколько регионов, то перечислим все уникальные пары:

REGION MANAGER_NAME MANAGER_ID
Запад Аркадий 19287318273912873
Восток Василий 92877912837318927
Север Ольга 02993284928374346
Юг Дмитрий 10836293849237642
Запад Максим 71726123712891283
Восток Максим 71726123712891283
Север Максим 71726123712891283
Юг Максим 71726123712891283

3. Добавим таблицу в датасет.
4. Выполним JOIN по полю REGION.
5. По полю MANAGER_ID настраиваем RLS и добавляем userid:userid.

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

Была ли статья полезна?

Language / Region
Проект Яндекса
© 2023 ООО «Яндекс.Облако»
В этой статье:
  • Настройка RLS на уровне датасета
  • Настройка RLS на уровне источника данных
  • Как изменить права доступа к строке в датасете