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. С помощью этого редактора можно переключаться между интерфейсом раскрывающегося списка по умолчанию и интерфейсом DAX. При публикации в Power BI вы также публикуете определения ролей.

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

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

    Примечание.

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

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

    Снимок экрана: вкладка

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

    Снимок экрана: окно

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

    Снимок экрана: окно

    Примечание.

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

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

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

    Снимок экрана: редактор окна

    Примечание.

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

  7. При необходимости выберите переключатель в редактор DAX, чтобы перейти на использование редактора DAX для определения роли. Выражения DAX возвращают значение true или false. Например: [Entity ID] = “Value”. Редактор DAX завершен с автозавершением для формул (intellisense). Установите флажок над полем выражения, чтобы проверить выражение и кнопку X над полем выражения, чтобы вернуть изменения.

    Снимок экрана: окно

    Примечание.

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

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

    Снимок экрана: диалоговое окно, подтверждающее, что вы хотите переключиться на редактор по умолчанию.

    Примечание.

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

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

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

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

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

Снимок экрана: параметр связи модели для применения фильтра безопасности в обоих направлениях.

Управление безопасностью в модели

Чтобы управлять безопасностью в семантической модели, откройте рабочую область, в которой сохранена семантическая модель в Fabric, и выполните следующие действия:

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

    Снимок экрана: меню

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

    Снимок экрана: меню

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

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

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

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

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

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

Снимок экрана: добавление элемента.

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

Снимок экрана: члены роли.

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

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

Снимок экрана: удаление элемента.

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

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

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

Снимок экрана: параметр

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

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

Снимок экрана: просмотр в виде раскрывающегося списка для конкретного пользователя.

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

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

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

Примечание.

Функция 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