Сравнение версий

Ключ

  • Эта строка добавлена.
  • Эта строка удалена.
  • Изменено форматирование.
Примечание
  • Если для набора данных не определена ни одна RLS-роль, пользователь может просматривать все данные этого набора. Если же для данного набора создана хотя бы одна RLS-роль, то пользователь увидит сообщение об ошибке, если ему не присвоена никакая RLS-роль.

  • Перед выполнением настроек необходимо добавить и настроить маппер протоколов.

При использовании динамической модели RLS вам необходимо настроить атрибуты пользователя в Keycloak, а затем использовать значения этих атрибутов либо по отдельности, либо в качестве массива при создании правил доступа. Для использования отдельных значений применяется функция USERATTRIBUTE, а при необходимости использования нескольких значений атрибутов применяется функция USERATTRIBUTEASARRAY (см. ниже).

Для создания правил доступа используются DAX-выражения. Ниже представлен список поддерживаемых функций, которые можно использовать для этой цели:

Название функции

Описание

IN

DAX-функция. Используется для проверки наличия значения в заданном списке значений. Например: <значение> IN {<значение>, <значение>, ...}

AND

DAX-функция. Используется для проверки, выполняются ли все условия, переданные в качестве аргументов. Возвращает TRUE, если все условия истинны, и FALSE, если хотя бы одно из условий ложно.

Например: AND(<логическое_выражение1>, <логическое_выражение2>)

(информация) Также поддерживается логический оператор && .

OR

DAX-функция. Используется для проверки нескольких условий и возвращает TRUE, если хотя бы одно из условий истинно.

Например: OR(<логическое_выражение1>, <логическое_выражение2>)

(информация) Также поддерживается логический оператор || .

USERATTRIBUTE

Применяется при использовании одного значения пользовательского атрибута. Данная функция создана специально для настройки правил доступа на платформе Visiology.

USERATTRIBUTEASARRAY

Применяется при использовании нескольких значений пользовательского атрибута. Данная функция создана специально для настройки правил доступа на платформе Visiology.

Ниже подробное описание процесса создания правил доступа с использованием этих функций.

Создание правил доступа с использованием функции USERATTRIBUTE

Раскрыть
titleРазвернуть инструкцию

Для настройки атрибутов пользователей необходимо выполнить следующие шаги:

  1. Откройте Keycloak, введя соответствующий адрес в адресной строке браузера:
    <domain>/v3/keycloak
    где <domain> – адрес вашего сервера.

  2. Откройте консоль администратора и в боковой панели нажмите Users:

    keycloak-users.png

  3. Выберите пользователя, для которого будут создаваться RLS-роли. В нашем примере это будет пользователь ivanov:

    user.png

  4. В открывшемся окне перейдите на вкладку Attributes и нажмите Add an attribute, чтобы добавить атрибут:

    attribute.png

  5. В поле Key укажите уникальный ключ атрибута, например City, а в поле Value укажите его значение. В нашем примере это будет город Москва:

    city.png
  6. Нажмите Save для сохранения изменений.

  7. Перейдите в требуемую рабочую область и откройте набор данных, для которого вы хотите создать роли безопасности. В нашем примере это будет Продажи:

    select-dataset.pngImage Removedsales.pngImage Added
  8. В открывшемся окне нажмите Данные > Роли безопасностив верхней панели:

    menu.pngImage Removedroles.pngImage Added
  9. В появившемся окне нажмите кнопку с крестиком для создания ролии выберите Роль доступа на уровне строк:

    create.pngImage Removedadd-button.pngImage Added

  10. Переименуйте созданную роль. Мы переименовали в Москва:

    moscow.pngImage RemovedMoscow-new.pngImage Added
  11. Для назначения роли пользователю нажмите кнопку справа от названия роли:

    click-button2.pngImage Removed

    assign-button2.pngImage Added

  12. В строке поиска начните вводить имя пользователям пользователя (в нашем случае ivanov):

    find-user.pngImage Removed

    assign-user2.pngImage Added

  13. Выберите найденного пользователя и нажмите Назначить. Пользователю будет назначена созданная роль, о чём система проинформирует вас:

    assign-user.png

  14. Кликните название созданной роли в левой стороне диалогового окна. Отобразится список таблиц набора данных, с которым вы работаете:

    table-list2.pngImage Removedtable-list2.pngImage Added
  15. Выберите таблицу, для которой вы хотите создать правило. В нашем примере это Города:

    cities.png
  16. В поле справа от списка таблиц введите выражение DAX фильтра таблицы. В нашем примере мы хотим, чтобы пользователь Иванов, у которого в рабочей области Филиалы CreativeElectronix роль Зритель, мог просматривать только те данные, которые относятся к городу Москва. Для этого мы введем следующее выражение:
    'Города' [City] = USERATTRIBUTE ("Москва")

    formula.png


    Данный запрос вернёт все строки из таблицы Города, в которых столбец City содержит значение Москва.

  17. Нажмите Сохранить DAX в правом нижнем углу.

Информация

Функция USERATTRIBUTE также поддерживает работу с массивами, содержащими один элемент (например, Country = ["Китай"]). Если массив содержит более одного элемента, необходимо использовать функцию USERATTRIBUTEASARRAY (см. ниже).

Теперь, при работе с набором данных Продажи, пользователь Иванов будет иметь доступ только к тем данным, которые относятся к городу Москве:

dynamic-final.png

Создание правил доступа с использованием функции USERATTRIBUTEASARRAY

Раскрыть
titleРазвернуть инструкцию

Для настройки атрибутов пользователей необходимо выполнить следующие шаги:

  1. Откройте Keycloak, введя соответствующий адрес в адресной строке браузера:
    <domain>/v3/keycloak
    где <domain> – адрес вашего сервера.

  2. Откройте консоль администратора и в боковой панели нажмите Users:

    keycloak-users.png

  3. Выберите пользователя, для которого будут создаваться RLS-роли. В нашем примере это пользователь ivanov:

    user.png

  4. В открывшемся окне перейдите на вкладку Attributes и нажмите Add an attribute, чтобы добавить атрибут:

    attribute.png

  5. В поле Key укажите уникальный ключ атрибута, например Countries, а в поле Value укажите его значение. В нашем примере это Россия:

    dynamic-attribute.png

  6. Добавьте еще несколько атрибутов с таким же ключом. Наличие единого ключа позволит обратиться к ним как к массиву при создании правил доступа. В нашем примере мы добавим Китай и Куба:

    dynamic-attributes.png
  7. Нажмите Save для сохранения изменений.

  8. Перейдите в требуемую рабочую область и откройте набор данных, для которого вы хотите создать роли безопасности. В нашем примере это Продажи:

    select-dataset.pngImage Removedsales.pngImage Added
  9. В открывшемся окне нажмите Данные > Роли безопасностив верхней панели:

    menu.pngImage Removedroles.pngImage Added
  10. В появившемся окне нажмите кнопку с крестиком для создания ролии выберите Роль доступа на уровне строк:

    create.pngImage Removed

    add-button.pngImage Added

  11. Переименуйте созданную роль. Мы переименовали её в Доступные страны:

    new-name.pngImage Removedavailable-countries.pngImage Added
  12. Для назначения роли пользователю нажмите кнопку справа от названия роли:

    assign-role.pngImage Removedassign-button3.pngImage Added
  13. В строке поиска начните вводить имя пользователям пользователя (в нашем случае ivanov):

    select-user.pngImage Removedusername.pngImage Added
  14. Выберите найденного пользователя и нажмите Назначить. Пользователю будет назначена созданная роль, о чём система проинформирует вас:

    assign-user.pngImage Removed

    assign3.pngImage Added

  15. Кликните название созданной роли в левой стороне диалогового окна. Отобразится список таблиц набора данных, с которым вы работаете:

    table-list3.pngImage Removed

    table-list3.pngImage Added

  16. Выберите таблицу, для которой вы хотите создать правило. В нашем примере это Города:

    table.png

  17. В поле справа от списка таблиц введите выражение DAX фильтра таблицы. В нашем примере мы хотим, чтобы пользователь Иванов, у которого в рабочей области Филиалы CreativeElectronix роль Зритель, мог просматривать только те данные, которые относятся к странам Россия, Китай и Куба. Для этого мы введем следующее выражение:
    'Города' [Country] IN USERATTRIBUTEASARRAY ("Countries")

    formula2.png


    Данный запрос вернёт все строки из таблицы Города, в которых столбец Country содержит значения, указанные в атрибутах с ключом Countries (т.е. Россия, Китай, Куба).

  18. Нажмите Сохранить DAX в правом нижнем углу.

Теперь, при работе с набором данных Продажи, пользователь Иванов будет иметь доступ только к тем данным, которые относятся к странам Россия, Китай и Куба:

dynamic-final2.png


Смотрите также

📄 Администрирование рабочих областей
📄 Настройка статической RLS

🕑 Время чтения: 2 мин.


Нужна дополнительная помощь?

Свяжитесь с технической поддержкой.