Предоставление доступа с помощью атрибута пользователя и фиксированного правила
Для данного примера давайте представим, что у вас есть аналитик, который работает с данными по нескольким странам, но вы также хотите, чтобы у него был доступ к данным по отдельному городу ещё одной страны. Для этого необходимо сделать следующее:
Создать несколько атрибутов пользователя для предоставления доступа к странам.
Создать роль доступа на платформе с использованием этих атрибутов и назначить ее пользователю.
Создать роль с фиксированным правилом для доступа к определенному городу и назначить ее пользователю.
Создание нескольких атрибутов пользователя для предоставления доступа к странам
Откройте Keycloak, введя соответствующий адрес в адресной строке браузера:
<domain>/v3/keycloak
где<domain>
– адрес вашего сервера.Откройте консоль администратора и в боковой панели нажмите Users:
Выберите пользователя, для которого будут создаваться RLS-роли. В нашем примере это пользователь ivanov:
В открывшемся окне перейдите на вкладку Attributes и нажмите Add an attribute, чтобы добавить атрибут:
В поле Key укажите уникальный ключ атрибута, например Countries, а в поле Value укажите его значение. В нашем примере это Россия:
Добавьте еще несколько атрибутов с таким же ключом. Наличие единого ключа позволит обратиться к ним как к массиву при создании правил доступа. В нашем примере мы добавим Франция и Куба:
Нажмите Save для сохранения изменений.
Создание роли доступа на платформе и назначение её пользователю
Перейдите в требуемую рабочую область и откройте набор данных, для которого вы хотите создать роли безопасности. В нашем примере это Продажи:
В открывшемся окне нажмите Данные > Роли безопасности:
В появившемся окне нажмите кнопку с крестиком для создания роли:
Переименуйте созданную роль. Мы переименовали её в Доступные страны:
Для назначения роли пользователю нажмите кнопку справа от названия роли:
В строке поиска начните вводить имя пользователям (в нашем случае ivanov):
Выберите найденного пользователя и нажмите Назначить. Пользователю будет назначена созданная роль, о чём система проинформирует вас:
Кликните название созданной роли в левой стороне диалогового окна. Отобразится список таблиц набора данных, с которым вы работаете:
Выберите таблицу, для которой вы хотите создать правило. В нашем примере это Локация:
В поле справа от списка таблиц введите выражение DAX фильтра таблицы. В нашем примере мы хотим, чтобы пользователь Иванов, у которого в рабочей области Филиалы CreativeElectronix роль Зритель, мог просматривать только те данные, которые относятся к странам Россия, Франция и Куба. Для этого мы введем следующее выражение:
'Локация' [Country] IN USERATTRIBUTEASARRAY ("Countries")
Данный запрос вернёт все строки из таблицы
Локация
, в которых столбецCountry
содержит значения, указанные в атрибутах с ключомCountries
(т.е. Россия, Франция, Куба).Нажмите Сохранить DAX в правом нижнем углу.
Создание роли с фиксированным правилом для доступа к определенному городу и назначение её пользователю
Находясь в рабочей области, перейдите в набор данных, для которого вы хотите создать роли безопасности. В нашем примере это Продажи:
В открывшемся окне нажмите Данные > Роли безопасности:
В появившемся окне нажмите кнопку с крестиком для создания роли:
Переименуйте созданную роль. Мы переименовали в Шанхай, т.к. хотим предоставить доступ к данным по этому городу:
Для назначения роли пользователю нажмите кнопку справа от названия роли:
В строке поиска начните вводить имя/фамилию/электронный адрес пользователя. Платформа отобразит список пользователей и групп, которые содержат вводимые символы:
Выберите требуемого пользователя и нажмите Назначить. Пользователю будет назначена созданная роль, о чём система проинформирует вас:
Кликните название созданной роли в левой стороне диалогового окна. Отобразится список таблиц набора данных, с которым вы работаете:
Выберите таблицу, для которой вы хотите создать правило. В нашем примере это Локация:
В поле справа от списка таблиц введите выражение DAX фильтра таблицы. В нашем примере мы хотим, чтобы пользователь ivanov мог дополнительно просматривать данные, которые относятся к городу Шанхай. Для этого мы введем следующее выражение:
'Локация' [City] IN {"Шанхай"}
Данный запрос вернёт все строки из таблицы
Локация
, в которых столбецCity
содержит Шанхай.Нажмите Сохранить DAX в правом нижнем углу.
После выполнения всех вышеописанных действий пользователь ivanov получит доступ к данным, относящимся к России, Кубе и Франции, а также к городу Шанхай.
Смотрите также
На этой странице
Время чтения: 2 мин.
Нужна дополнительная помощь?