Безопасность на уровне строк (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. С помощью этого редактора можно переключаться между интерфейсом раскрывающегося списка по умолчанию и интерфейсом DAX. При публикации в Power BI вы также публикуете определения ролей.
Определение ролей безопасности:
Импортируйте данные в отчет Power BI Desktop или настройте подключение DirectQuery.
Примечание.
Нельзя определить роли в Power BI Desktop для динамических подключений служб Analysis Services. Это необходимо сделать в модели служб Analysis Services.
На вкладке "Моделирование " выберите "Управление ролями".
В окне "Управление ролями" выберите "Создать", чтобы создать новую роль.
В разделе "Роли" укажите имя роли и выберите ввод.
Примечание.
Например,
London,ParisRole
нельзя определить роль с запятой.В разделе "Выбор таблиц" выберите таблицу, к которой необходимо применить фильтр безопасности на уровне строк.
В разделе "Фильтрация данных" используйте редактор по умолчанию для определения ролей. Выражения, созданные, возвращают значение true или false.
Примечание.
Не все фильтры безопасности на уровне строк, поддерживаемые в Power BI, можно определить с помощью редактора по умолчанию. Ограничения включают выражения, которые сегодня можно определить только с помощью DAX, включая динамические правила, такие как username() или userprincipalname(). Чтобы определить роли с помощью этих фильтров, можно использовать редактор DAX.
При необходимости выберите переключатель в редактор DAX, чтобы перейти на использование редактора DAX для определения роли. Выражения DAX возвращают значение true или false. Например:
[Entity ID] = “Value”
. Редактор DAX завершен с автозавершением для формул (intellisense). Установите флажок над полем выражения, чтобы проверить выражение и кнопку X над полем выражения, чтобы вернуть изменения.Примечание.
В этом выражении можно использовать имя пользователя( ). Помните, что имя пользователя() имеет формат DOMAIN\username в Power BI Desktop. В служба Power BI и Сервер отчетов Power BI он находится в формате имени участника-пользователя (UPN). Кроме того, в этом поле выражения используйте запятые для разделения аргументов функции DAX, даже если используется языковой стандарт, который обычно использует разделители с запятой, например французский или немецкий.
Вы можете вернуться к редактору по умолчанию, выбрав переключатель в редактор по умолчанию. Все изменения, внесенные в любой интерфейс редактора, сохраняются при переключении интерфейсов, когда это возможно. При определении роли с помощью редактора DAX, который не может быть определен в редакторе по умолчанию, при попытке переключиться в редактор по умолчанию появится предупреждение о том, что переключение редакторов может привести к потере некоторых сведений. Чтобы сохранить эти сведения, нажмите кнопку "Отмена" и продолжайте изменять эту роль только в редакторе DAX.
Примечание.
В этом поле выражения используйте запятые для разделения аргументов функции DAX, даже если используется языковой стандарт, который обычно использует разделители с запятой, например французский или немецкий.
Выберите Сохранить.
Вы не можете назначить пользователей роли в Power BI Desktop. Назначьте их в служба Power BI. Вы можете включить динамическую безопасность в Power BI Desktop, используя функции DAX имени пользователя () или userprincipalname() и настроив соответствующие связи.
Двунаправленная перекрестная фильтрация
По умолчанию фильтрация безопасности на уровне строк использует однонаправленные фильтры независимо от того, заданы ли связи однонаправленным или двунаправленным. Вы можете вручную включить двунаправленный перекрестный фильтр с безопасностью на уровне строк.
Выберите связь и установите флажок "Применить фильтр безопасности" в обоих направлениях .
Установите этот флажок при реализации динамической безопасности на уровне строк на основе имени пользователя или идентификатора входа.
Дополнительные сведения см. в статье о двунаправленной перекрестной фильтрации с помощью DirectQuery в Power BI Desktop и технической технической технической документации по защите табличной модели бизнес-аналитики .
Проверка ролей в Power BI Desktop
После создания ролей проверьте результаты ролей в Power BI Desktop.
На вкладке "Моделирование" выберите "Вид как".
Откроется окно представления как ролей , в котором отображаются созданные роли.
Выберите созданную роль. Затем нажмите кнопку "ОК ", чтобы применить ее.
В отчете отображаются данные, относящиеся к этой роли.
Вы также можете выбрать другого пользователя и предоставить заданного пользователя.
Рекомендуется указать имя участника-пользователя( имя участника-пользователя), так как это то, что используется служба Power BI и Сервер отчетов Power BI.
В Power BI Desktop другие пользователи отображают разные результаты, только если вы используете динамическую безопасность на основе выражений DAX. В этом случае необходимо включить имя пользователя, а также роль.
Нажмите ОК.
Отчет отображается в зависимости от того, какие фильтры RLS позволяют пользователю видеть.
Примечание.
Функция представления как ролей не работает для моделей DirectQuery с включенным единым входом.
Добавление участников в роли
После сохранения отчета в Сервер отчетов Power BI вы управляете безопасностью и добавляете или удаляете участников на сервере. В отчете доступны только пользователи с разрешениями Publisher или Content Manager.
Если у отчета нет необходимых ролей, необходимо открыть его в Power BI Desktop, добавить или изменить роли, а затем сохранить его обратно в Сервер отчетов Power BI.
В Power BI Desktop сохраните отчет в Сервер отчетов Power BI. Для Сервер отчетов Power BI необходимо использовать версию Power BI Desktop.
В службе отчетов Power BI выберите многоточие (...) рядом с отчетом.
Выберите "Управление безопасностью> на уровне строк".
На странице безопасности на уровне строк добавьте участников в роль, созданную в Power BI Desktop.
Чтобы добавить участника, нажмите кнопку "Добавить участника".
Введите пользователя или группу в текстовом поле в формате имени пользователя (DOMAIN\user) и выберите роли, которыми вы хотите назначить. Участник должен находиться в вашей организации.
В зависимости от того, как настроен Active Directory, введите имя участника-пользователя здесь также работает. В этом случае сервер отчетов отображает соответствующее имя пользователя в списке.
Нажмите кнопку "ОК ", чтобы применить.
Чтобы удалить участников, установите флажок рядом с именами и нажмите кнопку "Удалить". Вы можете удалить несколько членов одновременно.
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.