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

Ключ

  • Эта строка добавлена.
  • Эта строка удалена.
  • Изменено форматирование.
Примечание

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

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

Создание правил доступа с использованием функции 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.png
  8. В открывшемся окне нажмите Данные > Роли безопасности:

    menu.png
  9. В появившемся окне нажмите кнопку с крестиком для создания роли:

    create.png

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

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

    click-button2.png

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

    find-user.png

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

    assign-user.png

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

    table-list2.png

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

    cities.png

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

    formula.png


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

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

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

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.png
  9. В открывшемся окне нажмите Данные > Роли безопасности:

    menu.png
  10. В появившемся окне нажмите кнопку с крестиком для создания роли:

    create.png

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

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

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

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

    assign-user.png

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

    table-list3.png

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

    table.png

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

    formula2.png


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

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

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

dynamic-final2.png


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

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

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


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

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