/
Настройка динамической RLS

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

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

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

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

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

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

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

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

    keycloak-users.png

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

    user.png

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

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

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

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

  8. В открывшемся окне нажмите Данные > Роли безопасности:

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

     

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

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

     

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

     

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

     

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

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

     

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


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

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

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

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

 

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

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

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

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

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

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

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

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

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

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

  9. В открывшемся окне нажмите Данные > Роли безопасности:

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

     

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

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

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

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

     

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

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

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


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

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

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

 


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

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

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


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

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

 

Related content

Настройка статической RLS
Настройка статической RLS
More like this
Ролевая модель
Ролевая модель
Read with this
Настройка динамической RLS
Настройка динамической RLS
More like this
Динамика
Динамика
Read with this
Настройка динамической RLS
Настройка динамической RLS
More like this
Администрирование рабочих областей
Администрирование рабочих областей
Read with this