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

Функции безопасности на уровне строк (RLS) в Power BI позволяют ограничивать доступ к данным для определенных пользователей.Row-level security (RLS) with Power BI can be used to restrict data access for given users. Фильтры ограничивают доступ к данным на уровне строк.Filters restrict data at the row level. Задавать фильтры можно с помощью ролей.You can define filters within roles.

Вы можете настроить RLS для моделей данных, импортированных в Power BI с помощью Power BI Desktop.You can configure RLS for data models imported into Power BI with Power BI Desktop. Вы также можете настроить RLS для наборов данных, которые используют DirectQuery, таких как SQL Server.You can also configure RLS on datasets that are using DirectQuery, such as SQL Server. Раньше реализовывать RLS можно было только в локальных моделях служб Analysis Services за пределами Power BI.Previously, you were only able to implement RLS within on-premises Analysis Services models outside of Power BI. Для динамических подключений к службам Analysis Services безопасность на уровне строк настраивается в локальной модели.For Analysis Services live connections, you configure Row-level security on the on-premises model. Параметр безопасности не будет отображаться для наборов данных динамического подключения.The security option will not show up for live connection datasets.

Создание ролей и правил в приложении Power BI DesktopDefine roles and rules within Power BI Desktop

В приложении Power BI Desktop можно задавать роли и правила.You can define roles and rules within Power BI Desktop. При публикации в Power BI публикуются и определения ролей.When you publish to Power BI, it will also publish the role definitions.

Чтобы задать роли безопасности, выполните указанные ниже действия.To define security roles, you can do the following.

  1. Импортируйте данные в отчет Power BI Desktop или настройте подключение DirectQuery.Import data into your Power BI Desktop report, or configure a DirectQuery connection.

    Примечание

    Задавать определения ролей в Power BI Desktop для динамических подключений служб Analysis Services нельзя.You cannot define roles within Power BI Desktop for Analysis Services live connections. Это делается непосредственно в модели Analysis Services.You will need to do that within the Analysis Services model.

  2. Откройте вкладку Моделирование.Select the Modeling tab.
  3. Выберите Управление ролями.Select Manage Roles.

  4. Выберите Создать.Select Create.

  5. Укажите имя роли.Provide a name for the role.
  6. Выберите таблицу, для которой хотите применить правило DAX.Select the table that you want to apply a DAX rule.
  7. Введите выражения DAX.Enter the DAX expressions. Выражение должно возвращать истину (true) или ложь (false).This expression should return a true or false. Пример: [Код объекта] = "Значение".For example: [Entity ID] = “Value”.

    Примечание

    В этом выражении можно использовать функцию username().You can use username() within this expression. Помните о том, что в Power BI Desktop функция username() возвращает значения в формате ДОМЕН\имя_пользователя.Be aware that username() will have the format of DOMAIN\username within Power BI Desktop. В службе Power BI это значение принимает формат имени участника-пользователя.Within the Power BI service, it will be in the format of the user's UPN. Кроме того, можно использовать функцию userprincipalname(), которая всегда возвращает пользователя в формате имени участника-пользователя.Alternatively, you can use userprincipalname() which will always return the user in the format of their user principal name.

  8. Созданное выражение DAX можно проверить с помощью флажка над полем выражения.After you have created the DAX expression, you can select the check above the expression box to validate the expression.

  9. Нажмите кнопку Сохранить.Select Save.

Назначать пользователей роли в Power BI Desktop нельзя.You cannot assign users to a role within Power BI Desktop. Это делается в службе Power BI.This is done within the Power BI service. Чтобы использовать в Power BI Desktop функции динамической системы безопасности, используйте функции DAX username() или userprincipalname() и настройте соответствующие связи.You can enable dynamic security within Power BI Desktop by making use of the username() or userprincipalname() DAX functions and having the proper relationships configured.

По умолчанию при фильтрации с обеспечением безопасности на уровне строк используются однонаправленные фильтры, независимо от установленного типа связи (однонаправленной или двунаправленной).By default, row-level security filtering uses single-directional filters, regardless of whether the relationships are set to single direction or bi-directional. Вы можете вручную включить двунаправленный кросс-фильтр с обеспечением безопасности на уровне строк. Для этого выберите связь и установите флажок Применить фильтр безопасности в обоих направлениях.You can manually enable bi-directional cross-filter with row-level security by selecting the relationship and checking the Apply security filter in both directions checkbox. Этот флажок следует установить, если реализуется функция динамической безопасности на уровне строк. При этом безопасность на уровне строк обеспечивается на основе имени пользователя.You should check this box when implementing dynamic row-level security, wherein you provide row-level security based on user name or login ID.

Дополнительные сведения см. в статье Двунаправленная перекрестная фильтрация при работе с DirectQuery в Power BI Desktop и техническом документе по обеспечению безопасности в табличной семантической модели бизнес-аналитики.For more information, see Bidirectional cross-filtering using DirectQuery in Power BI Desktop and the Securing the Tabular BI Semantic Model technical article.

Применение фильтра безопасности

Проверка роли в приложении Power BI DesktopValidating the role within Power BI Desktop

Создав роль, вы можете проверить ее действие в приложении Power BI Desktop.After you have created your role, you can test the results of the role within Power BI Desktop. Для этого выберите Просмотреть как роли.To do this, select View As Roles.

В диалоговом окне Просмотреть как роли можно изменить содержимое представления для определенного пользователя или роли.The View as roles dialog allows you to change the view of what you are seeing for that specific user or role. Здесь показаны роли, которые вы создали.You will see the roles you have created.

Выберите роль и нажмите кнопку ОК, чтобы применить ее к представлению данных.You select the role you created and then select OK to apply that role to what you are viewing. В отчетах отображаются только те данные, которые относятся к данной роли.The reports will only render the data relevant for that role.

Кроме того, можно выбрать "Другой пользователь" и указать определенного пользователя.You can also select Other user and supply a given user. Рекомендуется указывать имя участника-пользователя, так как именно с ним работает служба Power BI.It is best to supply the User Principal Name (UPN) as that is what the Power BI service will use. Нажмите кнопку ОК, и в отчетах отобразится информация, которая доступна данному пользователю.Select OK and the reports will render based on what that user can see.

Примечание

Внешний вид отчетов в Power BI Desktop меняется только при использовании динамической системы безопасности на базе выражений DAX.Within Power BI Desktop, this will only display different results if you are using dynamic security based on your DAX expressions.

Управление безопасностью в моделиManage security on your model

Для управления безопасностью в модели данных можно выполнить следующие действия.To manage security on your data model, you will want to do the following.

  1. Нажмите значок многоточие (...) для определенного набора данных.Select the ellipse (…) for a dataset.
  2. Выберите Безопасность.Select Security.

В результате откроется страница RLS, где можно добавить участников к роли, созданной в Power BI Desktop.This will take you to the RLS page for you to add members to a role you created in Power BI Desktop. Параметр "Безопасность" отображается только владельцам набора данных.Only the owners of the dataset will see Security available. Если набор данных передается в составе группы, этот параметр будет доступен только администраторам.If the dataset is in a Group, only Administrators of the group will see the security option.

Создавать и изменять роли можно только в приложении Power BI Desktop.You can only create or modify roles within Power BI Desktop.

Работа с участникамиWorking with members

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

Можно добавить участника в роль, указав адрес электронной почты или имя добавляемого пользователя, группы безопасности или списка рассылки.You can add a member to the role by typing in the email address, or name, of the user, security group or distribution list you want to add. Этот участник должен быть в пределах вашей организации.This member has to be within your organization. Невозможно добавить группы, созданные в Power BI.You cannot add Groups created within Power BI.

Также по числу в скобках рядом с именем роли или рядом с участниками можно определить, сколько участников входит в данную роль.You can also see how many members are part of the role by the number in parenthesis next to the role name, or next to Members.

Удаление участниковRemove members

Участников можно удалять, нажимая "X" рядом с их именем.You can remove members by selecting the X next to their name.

Проверка роли в службе Power BIValidating the role within the Power BI service

Чтобы убедиться в работоспособности роли, которую вы определили, выполните проверку роли.You can validate that the role you defined is working correctly by testing the role.

  1. Щелкните многоточие (…) рядом с ролью.Select the ellipsis (...) next to the role.
  2. Выберите пункт Проверить данные в качестве роли.Select Test data as role

На экран будут выведены отчеты, доступные для этой роли.You will then see reports that are available for this role. В этом представлении панели мониторинга не представлены.Dashboards are not presented in this view. На синей панели выше вы увидите применяемые элементы.In the blue bar above, you will see what is being applied.

Другие роли или комбинации ролей можно проверить, выбрав Теперь показать как.You can test other roles, or combination of roles, by selecting Now viewing as.

Можно просмотреть данные для определенного пользователя или выбрать комбинацию из доступных ролей, чтобы проверить их работоспособность.You can choose to view data as a specific person, or you can select a combination of available roles to validate they are working.

Чтобы вернуться в обычный режим просмотра, выберите Вернуться к безопасности на уровне строк.To return to normal viewing, select Back to Row-Level Security.

Использование функции DAX username() или userprincipalname()Using the username() or userprincipalname() DAX function

Функции DAX username() и userprincipalname() в наборе данных обеспечивают определенные преимущества.You can take advantage of the DAX functions username() or userprincipalname() within your dataset. Их можно использовать в выражениях в Power BI Desktop.You can use them within expressions in Power BI Desktop. При публикации модели она будет использоваться в службе Power BI.When you publish your model, it will be used within the Power BI service.

В Power BI Desktop функция username() возвращает имя пользователя в формате ДОМЕН\пользователь, а функция userprincipalname() возвращает имя пользователя в формате user@contoso.com.Within Power BI Desktop, username() will return a user in the format of DOMAIN\User and userprincipalname() will return a user in the format of user@contoso.com.

В службе Power BI username() и userprincipalname() возвращают имя участника-пользователя.Within the Power BI service, username() and userprincipalname() will both return the user's User Principal Name (UPN). Оно выглядит как адрес электронной почты.This looks similar to an email address.

Использование RLS с рабочими областями приложений в Power BIUsing RLS with app workspaces in Power BI

При публикации отчета Power BI Desktop в рабочей области приложения в службе Power BI роли применяются к участникам с правами только для чтения.If you publish your Power BI Desktop report to an app workspace within the Power BI service, the roles will be applied to read-only members. Вам потребуется указать, что участники могут только просматривать содержимое Power BI, в параметрах рабочей области приложения.You will need to indicate that members can only view Power BI content within the app workspace settings.

Предупреждение

Если вы настроили рабочую область приложения таким образом, что ее участники обладают разрешениями на изменение, то роли RLS не будут применяться к этим участникам.If you have configured the app workspace so that members have edit permissions, the RLS roles will not be applied to them. Пользователи будут видеть все данные.Users will be able to see all of the data.

ОграниченияLimitations

Ниже приведен список текущих ограничений для безопасности на уровне строк в облачных моделях.Here is a list of the current limitations for row-level security on cloud models.

  • Если у вас уже были заданы роли и правила в службе Power BI, вам потребуется повторно создать их в Power BI Desktop.If you previously had roles/rules defined within the Power BI service, you will need to recreate them within Power BI Desktop.
  • RLS можно определить только в наборах данных, созданных с помощью клиента Power BI Desktop.You can define RLS only on the datasets created using Power BI Desktop client. Если вы хотите включить RLS для наборов данных, созданных с помощью Excel, необходимо сначала преобразовать файлы в PBIX-файлы.If you want to enable RLS for datasets created with Excel, you will need to convert your files into PBIX files first. Дополнительные сведенияLearn more
  • Поддерживаются только ETL и подключения DirectQuery.Only ETL, and DirectQuery connections are supported. Активные подключения к службам Analysis Services обрабатываются в локальной модели.Live connections to Analysis Services are handled in the on-premises model.
  • В настоящее время функции вопросов и ответов и Cortana не поддерживаются при использовании RLS.Q&A and Cortana is not supported with RLS at this time. Поле ввода вопросов и ответов для информационных панелей не отобразится, если во всех моделях настроена функция RLS.You will not see the Q&A input box for dashboards if all models have RLS configured. Поддержку этих возможностей планируется добавить, но конкретных сроков пока нет.This is on the roadmap, but a timeline is not available.
  • Предоставление доступа внешним пользователям пока не поддерживается для наборов данных, использующих RLS.External sharing is not currently supported with datasets that use RLS.
  • Для любой модели максимальное число субъектов Azure AD (т. е. отдельных пользователей или групп безопасности), которые могут быть назначены роли безопасности, равно 1000.For any given model, the maximum number of Azure AD principals (i.e. individual users or security groups) that can be assigned to security roles is 1,000. Чтобы назначить ролям большее число пользователей, назначайте группы безопасности, а не отдельных пользователей.To assign large numbers of users to roles, be sure to assign security groups, rather than individual users.

Известные проблемыKnown issues

Существует известная проблема, из-за которой при попытке опубликовать из Power BI Desktop данные, которые уже были опубликованы, возникает сообщение об ошибке.There is a known issue where you will receive an error message when trying to publish from Power BI Desktop if it was previously published. Ниже описана последовательность действий, которая к этому приводит.The scenario is as follows.

  1. Предположим, у Анны есть набор данных, который опубликован в службе Power BI, и для него настроена RLS.Anna has a dataset that is publised to the Power BI service and has configured RLS.
  2. Анна обновляет отчет в Power BI Desktop и снова публикует его.Anna updates the report in Power BI Desktop and re-publishes.
  3. Анна получает сообщение об ошибке.Anna will receive an error.

Временное решение. Пока эта проблема не решена, вы можете повторно публиковать файлы Power BI Desktop из службы Power BI.Workaround: Re-publish the Power BI Desktop file from the Power BI service until this issue is resolved. Для этого выберите Получить данные > Файлы.You can do that by select Get Data > Files.

ВОПРОСЫ И ОТВЕТЫFAQ

Вопрос. Что, если у меня уже созданы роли или правила для набора данных в службе Power BI?Question: What if I had previously created roles/rules for a dataset in the Power BI service? Будут ли они работать, если ничего не делать?Will they still work if I do nothing?
Ответ. Нет.Answer: No. Визуальные элементы не будут отображаться правильным образом.Visuals will not render properly. Вам придется повторно создать роли и правила в Power BI Desktop, а затем опубликовать их в службе Power BI.You will have to re-create the roles/rules within Power BI Desktop and then published to the Power BI service.

Вопрос. Можно ли создавать роли для источников данных служб Analysis Services?Question: Can I creates these roles for Analysis Services data sources?
Ответ. Да, если данные импортированы в Power BI Desktop.Answer: You can if you imported the data into Power BI Desktop. Если вы используете динамическое подключение, то не сможете настроить RLS в службе Power BI.If you are using a live connection, you will not be able to configure RLS within the Power BI service. Это делается локально в модели Analysis Services.This is defined within the Analysis Services model on-premises.

Вопрос. Могу ли я использовать RLS для ограничения столбцов или мер, доступных для моих пользователей?Question: Can I use RLS to limit the columns or measures accessible by my users?
Ответ. Нет.Answer: No. Если у пользователя есть доступ к конкретной строке данных, они могут видеть все столбцы данных для этой строки.If a user has access to a particular row of data, they can see all the columns of data for that row.

Вопрос. Позволяет ли RLS скрыть подробные данные, но предоставить доступ к данным, представленным в визуальных элементах?Question: Does RLS allow me to hide detailed data but give access to data summarized in visuals?
Ответ. Нет. Вы защищаете отдельные строки данных, но пользователи всегда могут видеть сведения или сводные данные.Answer: No, you secure individual rows of data but users can always see either the details or summarized data.

Дальнейшие действияNext steps

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

Появились дополнительные вопросы?More questions? Попробуйте задать вопрос в сообществе Power BI.Try asking the Power BI Community