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


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.

    Примечание.

    You can't define roles within Power BI Desktop for Analysis Services live connections. You need to do that within the Analysis Services model.

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

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

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

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

  4. В разделе "Роли" введите имя роли и нажмите Enter.

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

    Примечание.

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

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

  6. В разделе "Фильтрация данных" используйте редактор по умолчанию для определения ролей. The expressions created return a true or false value.

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

    Примечание.

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

  7. Optionally select Switch to DAX editor to switch to using the DAX editor to define your role. Выражения DAX возвращают значение true или false. Например: [Entity ID] = “Value”. Редактор DAX оснащен функцией автозавершения для формул (интеллисенс). Установите флажок над полем выражения, чтобы проверить выражение и кнопку X над полем выражения, чтобы вернуть изменения.

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

    Примечание.

    В этом выражении можно использовать имя пользователя( ). Помните, что имя пользователя() имеет формат DOMAIN\username в Power BI Desktop. Within the Power BI service and Power BI Report Server, it's in the format of the user's User Principal Name (UPN). Кроме того, в этом поле выражения используйте запятые для разделения аргументов функции DAX, даже если используется языковой стандарт, который обычно использует разделители с запятой, например французский или немецкий.

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

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

    Примечание.

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

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

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

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

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

Screenshot of the model relationship setting to apply security filter in both directions.

Manage security on your model

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

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

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

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

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

Безопасность перенаправляет вас на страницу "Безопасность на уровне ролей", где вы добавляете пользователей в созданную роль. Contributor (and higher workspace roles) will see Security and can assign users to a role.

Примечание.

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

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

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

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

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

Note that Microsoft 365 groups aren't supported and can't be added to any roles.

Снимок экрана, показывающий, как добавить участника.

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

Screenshot showing members in role.

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

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

Снимок экрана, на котором показано, как удалить участника.

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

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

  1. Выберите дополнительные параметры (...) рядом с ролью.
  2. Select Test as role.

Screenshot of Test as role option.

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

В заголовке страницы отображается роль, применяемая. Test other roles, a combination of roles, or a specific person by selecting Now viewing as. Здесь вы увидите важные сведения о разрешениях, относящихся к тестируемой личности или роли. Дополнительные сведения о том, как разрешения взаимодействуют с RLS, см. в статье о пользовательском интерфейсе RLS.

Screenshot of Now viewing as dropdown for a specific person.

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

Screenshot of Viewing to select a different report to test.

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

Примечание.

The Test as role feature doesn't work for DirectQuery models with Single Sign-On (SSO) enabled. Additionally, not all aspects of a report can be validated in the Test as role feature including Q&A visualizations, Quick insights visualizations, and Copilot.

Using the username() or userprincipalname() DAX function

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

В Power BI Desktop имя пользователя () возвращает пользователя в формате DOMAIN\User и userprincipalname() в формате[email protected].

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

Using RLS with workspaces in Power BI

If you publish your Power BI Desktop report to a workspace in the Power BI service, the RLS roles are applied to members who are assigned to the Viewer role in the workspace. Even if Viewers are given Build permissions to the semantic model, RLS still applies. For example, if Viewers with Build permissions use Analyze in Excel, their view of the data is restricted by RLS. Члены рабочей области, назначенные администратором, участником или участником, имеют разрешение на изменение семантической модели и, следовательно, RLS не применяется к ним. If you want RLS to apply to people in a workspace, you can only assign them the Viewer role. Узнайте больше о ролях в рабочих областях.

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

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

  • Если вы ранее определили роли и правила в служба Power BI, необходимо повторно создать их в Power BI Desktop.
  • Вы можете определить RLS только в семантических моделях, созданных с помощью Power BI Desktop. Если вы хотите включить RLS для семантических моделей, созданных с помощью Excel, сначала необходимо преобразовать файлы в файлы Power BI Desktop (PBIX). Подробнее.
  • Service principals can't be added to an RLS role. Accordingly, RLS isn't applied for apps using a service principal as the final effective identity.
  • Only Import and DirectQuery connections are supported. Динамические подключения к службам Analysis Services обрабатываются в локальной модели.
  • The Test as role/View as role feature doesn't work for DirectQuery models with single sign-on (SSO) enabled.
  • The Test as role/view as role feature shows only reports from semantic models workspace.
  • Функция test as role/View as role не работает для отчетов с разбивкой на страницы.

Помните, что если отчет Power BI ссылается на строку с RLS, настроенной, то то такое же сообщение отображается для удаленного или не существующего поля. To these users, it looks like the report is broken.

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

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

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

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

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

Вопрос. Мой источник данных уже имеет определенные роли безопасности (например, роли SQL Server или роли SAP BW). Что такое связь между этими ролями и RLS?
Ответ. Ответ зависит от того, импортируете ли вы данные или используете DirectQuery. Если вы импортируете данные в набор данных Power BI, роли безопасности в источнике данных не используются. В этом случае необходимо определить RLS для применения правил безопасности для пользователей, которые подключаются в Power BI. If you're using DirectQuery, the security roles in your data source are used. Когда пользователь открывает отчет, Power BI отправляет запрос в базовый источник данных, который применяет правила безопасности к данным на основе учетных данных пользователя.

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

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