Row-level security (RLS) with Power BI (Безопасность на уровне строк (RLS) в Power BI)

Безопасность на уровне строк (RLS) с Помощью Power BI можно использовать для ограничения доступа к данным для заданных пользователей. Фильтры ограничивают доступ к данным на уровне строк и могут определять фильтры в ролях. В служба Power BI пользователи с доступом к рабочей области имеют доступ к семантической модели в этой рабочей области. RLS ограничивает доступ только к данным для пользователей с разрешениями средства просмотра . Он не применяется к Администратор, членам или участникам.

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

Определение ролей и правил в 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. Обратите внимание, что если таблица участвует в нескольких двунаправленных отношениях, вы можете выбрать этот параметр только для одной из этих связей. Выберите этот параметр, если вы также реализовали динамическую безопасность на уровне сервера, где безопасность на уровне строк основана на имени пользователя или идентификаторе входа.

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

Screenshot of the apply Security Filter.

Определение ролей и правил в Power BI с помощью расширенного редактора безопасности на уровне строк (предварительная версия)

Вы можете быстро и легко определить роли безопасности на уровне строк и фильтры в Power BI с помощью расширенного редактора безопасности на уровне строк. С помощью этого редактора можно переключаться между интерфейсом раскрывающегося списка по умолчанию и интерфейсом DAX. При публикации в Power BI вы также публикуете определения ролей.

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

  1. В Power BI Desktop включите предварительную версию, перейдя в меню "Параметры файлов>" и Параметры > функции предварительной версии и > включите "Расширенный редактор безопасности на уровне строк". Кроме того, этот редактор можно использовать в службе, изменив модель данных в служба Power BI.

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

  3. На ленте выберите " Управление ролями".

    Screenshot of the Manage roles button in the Desktop ribbon.

  4. В окне "Управление ролями" выберите "Создать", чтобы создать новую роль.

    Screenshot of creating a new role in the enhanced row-level security editor.

  5. В разделе "Роли" укажите имя роли и выберите ввод.

    Screenshot of renaming a role in the enhanced row-level security editor.

  6. В разделе "Выбор таблиц" выберите таблицу, к которой нужно применить фильтр безопасности на уровне строк.

  7. В разделе "Фильтрация данных" используйте редактор по умолчанию для определения ролей. Выражения, созданные, возвращают значение true или false.

    Screenshot of an example of using the default editor in the enhanced row-level security editor.

    Примечание.

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

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

    Screenshot of an example of using the dax editor in the enhanced row-level security editor.

    При определении роли с помощью редактора DAX, который не может быть определен в редакторе по умолчанию, при попытке переключиться в редактор по умолчанию появится предупреждение о том, что переключение редакторов может привести к потере некоторых сведений. Чтобы сохранить эти сведения, нажмите кнопку "Отмена" и продолжайте изменять эту роль только в редакторе DAX.

    Screenshot of an example error dialog when switching from the DAX to default editor in enhanced row-level security editor.

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

Проверка ролей в 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, и выполните следующие действия:

  1. В служба Power BI выберите меню "Дополнительные параметры" для семантической модели. Это меню отображается при наведении указателя мыши на имя семантической модели, независимо от того, выбираете ли его в меню навигации или на странице рабочей области.

    Screenshot showing the more options menu in the workspace.

    Screenshot showing the more options menu in navigation menu.

  2. Выберите Безопасность.

    Screenshot showing the more options menu with Security selected.

Безопасность переносит вас на страницу "Безопасность на уровне ролей", где вы добавляете участников в созданную роль. Участник (и более высокие роли рабочей области) увидит безопасность и может назначать пользователей роли.

Работа с членами

Добавить участников

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

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

Обратите внимание, что группы Microsoft 365 не поддерживаются и не могут быть добавлены в роли.

Screenshot showing how to add a member.

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

Screenshot showing members in role.

Удаление членов

Вы можете удалить элементы, выбрав X рядом с их именем.

Screenshot showing how to remove a member.

Проверка роли в служба Power BI

Вы можете проверить правильность работы определенной роли в служба Power BI, проверив роль.

  1. Выберите дополнительные параметры (...) рядом с ролью.
  2. Выберите " Тест в качестве роли".

Screenshot of test as role option.

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

В заголовке страницы отображается роль, применяемая. Проверьте другие роли, сочетание ролей или определенного человека, выбрав "Теперь" как. Здесь вы увидите важные сведения о разрешениях, относящихся к тестируемой личности или роли. Дополнительные сведения о том, как разрешения взаимодействуют с RLS, см. в статье о пользовательском интерфейсе RLS.

Screenshot of Now viewing as dropdown for a specific person.

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

Screenshot of Viewing to select a different report to test.

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

Примечание.

Функция test as role не работает для моделей DirectQuery с включенным единым входом. Кроме того, не все аспекты отчета можно проверить в функции "Тест" в качестве роли, включая визуализации Q&A, визуализации быстрых аналитических сведений и Copilot.

Использование функции DAX имени пользователя() или userprincipalname()

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

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

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

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

При публикации отчета Power BI Desktop в рабочей области в служба Power BI роли RLS применяются к членам, которым назначена роль просмотра в рабочей области. Даже если средства просмотра получают разрешения на сборку для семантической модели, RLS по-прежнему применяется. Например, если средства просмотра с разрешениями сборки используют анализ в Excel, их представление данных ограничено RLS. Члены рабочей области, назначенные Администратор, член или участник, имеют разрешение на изменение семантической модели и, следовательно, RLS не применяется к ним. Если вы хотите, чтобы RLS применялись к людям в рабочей области, их можно назначить только роль просмотра . Дополнительные сведения о ролях в рабочих областях.

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

Здесь можно увидеть текущие ограничения безопасности на уровне строк в облачных моделях:

  • Если вы ранее определили роли и правила в служба Power BI, необходимо повторно создать их в Power BI Desktop.
  • Вы можете определить RLS только в семантических моделях, созданных с помощью Power BI Desktop. Если вы хотите включить RLS для семантических моделей, созданных с помощью Excel, сначала необходимо преобразовать файлы в файлы Power BI Desktop (PBIX). Подробнее.
  • Субъекты-службы не могут быть добавлены в роль RLS. Соответственно, RLS не применяется для приложений, использующих субъект-службу в качестве окончательного эффективного удостоверения.
  • Поддерживаются только подключения импорта и DirectQuery. Динамические подключения к службам Analysis Services обрабатываются в локальной модели.
  • Функция test as role/View as role не работает для моделей DirectQuery с включенным единым входом.
  • Тест в качестве роли или представления в качестве функции роли отображает только отчеты из рабочей области семантических моделей.
  • Функция test as role/View as role не работает для отчетов с разбивкой на страницы.

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

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

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

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

Вопрос. Можно ли использовать RLS для ограничения столбцов или мер, доступных моими пользователями?
Ответ. Нет, если у пользователя есть доступ к определенной строке данных, они могут видеть все столбцы данных для этой строки. Чтобы ограничить доступ к столбцам и метаданным столбцов, рекомендуется использовать безопасность на уровне объекта.

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

Вопрос. Мой источник данных уже имеет определенные роли безопасности (например, роли SQL Server или роли SAP BW). Что такое связь между этими ролями и RLS?
Ответ. Ответ зависит от того, импортируете ли вы данные или используете DirectQuery. Если вы импортируете данные в набор данных Power BI, роли безопасности в источнике данных не используются. В этом случае необходимо определить RLS для применения правил безопасности для пользователей, которые подключаются в Power BI. Если вы используете DirectQuery, используются роли безопасности в источнике данных. Когда пользователь открывает отчет, Power BI отправляет запрос в базовый источник данных, который применяет правила безопасности к данным на основе учетных данных пользователя.

Вопрос. Может ли пользователь принадлежать более одной роли?
Ответ. Пользователь может принадлежать нескольким ролям, а роли являются аддитивными. Например, если пользователь принадлежит к ролям "Продажи" и "Маркетинг", они могут просматривать данные для обеих этих ролей.

Вопросы? Попробуйте спросить предложения Сообщество Power BI? Участие в разработке идей по улучшению Power BI