Безопасность на уровне строк (RLS) в Сервер отчетов Power BI

Настройка безопасности на уровне строк (RLS) с помощью Сервер отчетов Power BI может ограничить доступ к данным для заданных пользователей. Фильтры ограничивают доступ к данным на уровне строк и могут определять фильтры в ролях. Если вы используете разрешения по умолчанию в Сервер отчетов Power BI, любой пользователь с разрешениями Publisher или Content Manager для отчета Power BI может назначать участникам роли для этого отчета.

Вы настраиваете RLS для отчетов, импортированных в Power BI с помощью Power BI Desktop. Вы также можете настроить RLS в отчетах, использующих DirectQuery, например SQL Server. Помните, что RLS не учитывается, если подключение DirectQuery использует встроенную проверку подлинности для средств чтения отчетов. Для динамических подключений служб Analysis Services вы настраиваете безопасность на уровне строк в локальной модели. Параметр безопасности не отображается для динамических наборов данных подключения.

Определение ролей и правил в Power BI Desktop

Роли и правила можно определить в Power BI Desktop. При публикации в Power BI вы также публикуете определения ролей.

Определение ролей безопасности:

  1. Импортируйте данные в отчет Power BI Desktop или настройте подключение DirectQuery.

    Примечание.

    Нельзя определить роли в Power BI Desktop для динамических подключений служб Analysis Services. Это необходимо сделать в модели служб Analysis Services.

  2. На вкладке "Моделирование " выберите "Управление ролями".

    Screenshot of the Modeling tab, highlighting Manage roles.

  3. В окне "Управление ролями" нажмите кнопку "Создать".

    Screenshot of the Manage roles window, highlighting Create.

  4. В разделе "Роли" укажите имя роли.

    Примечание.

    Например, London,ParisRoleнельзя определить роль с запятой.

  5. В разделе "Таблицы" выберите таблицу, к которой нужно применить правило DAX (выражение анализа данных).

  6. В поле выражения DAX фильтра таблиц введите выражения DAX. Это выражение возвращает значение true или false. Например: [Entity ID] = “Value”.

    Screenshot of the Manage roles window, highlighting an example DAX expression.

    Примечание.

    В этом выражении можно использовать имя пользователя( ). Помните, что имя пользователя() имеет формат DOMAIN\username в Power BI Desktop. В служба Power BI и Сервер отчетов Power BI он находится в формате имени участника-пользователя (UPN). Кроме того, можно использовать userprincipalname(), который всегда возвращает пользователя в формате имени username@contoso.comучастника-пользователя.

  7. После создания выражения DAX выберите знак проверка над полем выражения, чтобы проверить выражение.

    Screenshot of the Table filter DAX expression window, highlighting the checkmark.

    Примечание.

    В этом поле выражения используйте запятые для разделения аргументов функции DAX, даже если используется языковой стандарт, который обычно использует разделители с запятой (например, французский или немецкий).

  8. Выберите Сохранить.

Вы не можете назначить пользователей роли в Power BI Desktop. Назначьте их в служба Power BI. Вы можете включить динамическую безопасность в Power BI Desktop, используя функции DAX имени пользователя () или userprincipalname() и настроив соответствующие связи.

Двунаправленная перекрестная фильтрация

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

  • Выберите связь и проверка фильтр "Применить безопасность" в обоих направлениях проверка box.

    Apply security filter

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

Дополнительные сведения см. в статье о двунаправленной перекрестной фильтрации с помощью DirectQuery в Power BI Desktop и технической технической технической документации по защите табличной модели бизнес-аналитики .

Проверка ролей в Power BI Desktop

После создания ролей проверьте результаты ролей в Power BI Desktop.

  1. На вкладке "Моделирование" выберите "Вид как".

    Screenshot of the Modeling tab, highlighting View as.

    Откроется окно представления как ролей , в котором отображаются созданные роли.

    Screenshot of the View as roles window with None selected.

  2. Выберите созданную роль. Затем нажмите кнопку "ОК ", чтобы применить ее.

    В отчете отображаются данные, относящиеся к этой роли.

  3. Вы также можете выбрать другого пользователя и предоставить заданного пользователя.

    Screenshot of the View as roles window with an example user entered.

    Рекомендуется указать имя участника-пользователя( имя участника-пользователя), так как это то, что используется служба Power BI и Сервер отчетов Power BI.

    В Power BI Desktop другие пользователи отображают разные результаты, только если вы используете динамическую безопасность на основе выражений DAX. В этом случае необходимо включить имя пользователя, а также роль.

  4. Нажмите ОК.

    Отчет отображается в зависимости от того, какие фильтры RLS позволяют пользователю видеть.

    Примечание.

    Функция представления как ролей не работает для моделей DirectQuery с включенным единым входом.

Добавление участников в роли

После сохранения отчета в Сервер отчетов Power BI вы управляете безопасностью и добавляете или удаляете участников на сервере. В отчете доступны только пользователи с разрешениями Publisher или Content Manager.

Если у отчета нет необходимых ролей, необходимо открыть его в Power BI Desktop, добавить или изменить роли, а затем сохранить его обратно в Сервер отчетов Power BI.

  1. В Power BI Desktop сохраните отчет в Сервер отчетов Power BI. Для Сервер отчетов Power BI необходимо использовать версию Power BI Desktop.

  2. В службе отчетов Power BI выберите многоточие (...) рядом с отчетом.

  3. Выберите "Управление безопасностью> на уровне строк".

    Manage row-level security

    На странице безопасности на уровне строк добавьте участников в роль, созданную в Power BI Desktop.

  4. Чтобы добавить участника, нажмите кнопку "Добавить участника".

  5. Введите пользователя или группу в текстовом поле в формате имени пользователя (DOMAIN\user) и выберите роли, которыми вы хотите назначить. Участник должен находиться в вашей организации.

    Add member to role

    В зависимости от того, как настроен Active Directory, введите имя участника-пользователя здесь также работает. В этом случае сервер отчетов отображает соответствующее имя пользователя в списке.

  6. Нажмите кнопку "ОК ", чтобы применить.

  7. Чтобы удалить участников, проверка поле рядом с именами и нажмите кнопку "Удалить". Вы можете удалить несколько членов одновременно.

    Delete members

username() и userprincipalname()

Вы можете воспользоваться преимуществами имени пользователя() функций DAX или userprincipalname() в наборе данных. Их можно использовать в выражениях в Power BI Desktop. При публикации модели Сервер отчетов Power BI их использовать.

В Power BI Desktop имя пользователя () возвращает пользователя в формате DOMAIN\User и userprincipalname() в формате user@contoso.com.

В Сервер отчетов Power BI имя пользователя () и userprincipalname() возвращают имя участника-пользователя (UPN), аналогичное адресу электронной почты.

Если вы используете пользовательскую проверку подлинности в Сервер отчетов Power BI, он возвращает формат имени пользователя, настроенный для пользователей.

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

Ниже приведены текущие ограничения безопасности на уровне строк в моделях Power BI.

Пользователи, у которых есть отчеты с помощью функции DAX имени пользователя () DAX, заметят новое поведение, когда имя участника-пользователя возвращается ТОЛЬКО при использовании DirectQuery с интегрированной безопасностью. Так как RLS не учитывается в этом сценарии, поведение в этом сценарии не изменяется.

Вы можете определить RLS только в наборах данных, созданных с помощью Power BI Desktop. Чтобы включить RLS для наборов данных, созданных с помощью Excel, сначала необходимо преобразовать файлы в файлы Power BI Desktop (PBIX). Дополнительные сведения о преобразовании файлов Excel.

Поддерживаются только подключения Extract, Transform, Load (ETL) и DirectQuery с использованием сохраненных учетных данных. Динамические подключения к службам Analysis Services и подключениям DirectQuery с помощью встроенной проверки подлинности обрабатываются в базовом источнике данных.

Если вы используете встроенную безопасность с DirectQuery, пользователи могут заметить следующее:

  • RLS отключен и возвращаются все данные.
  • Пользователи не могут обновлять назначения ролей и получать ошибку на странице управления RLS.
  • Для функции имени пользователя DAX вы продолжаете получать имя пользователя как DOMAIN\USER.

Авторы отчетов не имеют доступа к просмотру данных отчета в Сервер отчетов Power BI, пока они не назначали себе роли соответствующим образом после отправки отчета.

Назначения ролей с помощью членства в группах поддерживаются только в том случае, если Сервер отчетов Power BI настроено для выполнения с проверкой подлинности NTLM или Kerberos. Серверы, работающие с пользовательской проверкой подлинности или Windows Basic, должны явно назначаться ролям.

Вопросы и ответы

Можно ли создать эти роли для источников данных служб Analysis Services?

Вы можете импортировать данные в Power BI Desktop. Если вы используете динамическое подключение, вы не можете настроить RLS в служба Power BI. RLS определяется в локальной модели служб Analysis Services.

Можно ли использовать RLS для ограничения столбцов или мер, доступных пользователями?

№ Если у пользователя есть доступ к определенной строке данных, они могут просмотреть все столбцы данных для этой строки.

Позволяет ли RLS скрывать подробные данные, но предоставлять доступ к данным, обобщенным в визуальных элементах?

Нет, вы защищаете отдельные строки данных, но пользователи всегда могут видеть сведения или суммированные данные.

Можно ли добавить новые роли в Power BI Desktop, если у меня уже есть роли и члены?

Да, если у вас уже есть определенные роли и члены, назначенные в Сервер отчетов Power BI, можно сделать дополнительные роли и повторно опубликовать отчет без влияния на текущие назначения.

Есть еще вопросы? Задайте их в сообществе Power BI.