Поделиться через


Реализация безопасности на уровне строк в внедренных отчетах с разбивкой на страницы

ОБЛАСТЬ ПРИМЕНЕНИЯ: Приложение владеет данными, принадлежащими пользователю данных

В этой статье объясняется, как внедрить отчет с разбивкой на страницы, использующий RLS (безопасность на уровне строк) в приложение данных.

Примечание.

Эта статья относится только к клиентам данных приложения.

Чтобы использовать RLS для отчетов с разбивкой на страницы:

  1. Настройка среды для фильтрации отчета
  2. Фильтрация данных на уровне отчета или запроса
  3. Передача настроенного параметра с помощью маркера внедрения

Необходимые компоненты

  • В этой статье предполагается, что вы знаете, как внедрить отчет с разбивкой на страницы Power BI. В нем объясняется, как создать маркер внедрения, чтобы отчет отображал только то, что у пользователя есть разрешение на доступ.

  • Отчеты с разбивкой на страницы создаются с помощью подсистемы СЛУЖБ SQL Server Reporting Services, а не подсистемы Power BI (Analysis Services), поэтому фильтрация RLS настраивается в Power BI построитель отчетов.

Настройка среды

Чтобы применить безопасность на уровне строк к отчету Power BI с разбивкой на страницы, используйте встроенное поле UserID для назначения параметра. Этот параметр используется для фильтрации или запроса данных.

Затем передайте идентификаторпользователя в токен внедрения— создайте API маркера для получения маркера внедрения.

Использование UserID в качестве фильтра на уровне отчета или запроса

UserId можно использовать в качестве фильтра или запроса к источнику данных.

Фильтрация данных

  1. В окне "Свойства семантической модели" в левой области выберите "Фильтр".

    Снимок экрана: фильтр построитель отчетов Power BI.

  2. В раскрывающемся меню выражения выберите параметр, который вы хотите использовать для фильтрации данных.

    Снимок экрана: значение цвета, выбранное в меню

  3. Нажмите кнопку "Значение ".

    Значение построитель отчетов Power BI

  4. В окне выражения в списке категорий выберите встроенные поля.

    Снимок экрана: окно выражения со встроенными полями, выбранными в качестве категории и ExecutionTime, выбранными в качестве элемента.

  5. В списке элементов выберите UserID и нажмите кнопку "ОК".

    Идентификатор пользователя Построитель отчетов Power BI

  6. В окне свойств семантической модели убедитесь, что выражение является выбранным параметром = UserID, и нажмите кнопку "ОК".

    Свойства семантической модели Power BI построитель отчетов

Использование запроса

  1. В окне "Свойства семантической модели" в области навигации слева выберите "Параметры" и нажмите кнопку "Добавить".

    Параметры построитель отчетов Power BI

  2. В поле "Имя параметра" введите @UserID и в добавлении значения параметра [&UserID].

    Имя параметра построитель отчетов Power BI

  3. В левой области выберите "Запрос", в поле "Запрос" добавьте параметр UserID в рамках запроса и нажмите кнопку "ОК".

    Примечание.

    На снимке экрана ниже параметр цвета используется в качестве примера (WHERE FinalTable.Color = @UserID). При необходимости можно создать более сложный запрос.

    Изменение запросов построитель отчетов Power BI

Создание маркера внедрения

При внедрении отчета с разбивкой на страницы для клиентов используйте API GenerateTokenInGroup для получения маркера внедрения. Этот маркер также можно использовать для фильтрации некоторых данных из отчета с разбивкой на страницы.

Маркер можно создать только с помощью субъекта-службы. Невозможно создать маркер в качестве главного пользователя. Субъект-служба должен иметь по крайней мере разрешения на члены рабочей области в служба Power BI. (Если субъект-служба является участником или средством просмотра, он не может создать токен).

Чтобы создать маркер, назначьте username поле со сведениями, которые необходимо отобразить. Например, в отчете с разбивкой на страницы с параметром цвета, если вы вводите зеленый цвет в username поле, маркер внедрения ограничивает внедренные данные только данными, которые имеют зеленый цвет в качестве значения в столбце цвета.

{
 "reports": [
 {
  "id": "8d57615e-cfed-4d60-bd21-7dc05727193c"
 }
 ],
 "identities": [
 {
  "username": "green",
  "reports": [
  "8d57615e-cfed-4d60-bd21-7dc05727193c"
  ]
 }
 ]
}

Примечание.

Если вы создаете маркер внедрения без указания идентификатора пользователя, будет использоваться объект субъекта-службы .

Рекомендации и ограничения

  • Главный пользователь не поддерживается с отчетами с разбивкой на страницы для внедрения для клиентов. Главный пользователь поддерживает внедрение для вашей организации.
  • Субъект-служба должен иметь разрешения рабочей области по крайней мере члена или (не средства просмотра или участника).

Создание маркера внедрения