Встроенная безопасность на уровне строк в Power BI

Я использую встроенную защиту на уровне строк. Согласно документации, приведенной здесь нам нужно добавить роль в рабочий стол power bi и использовать выражение DAX, например [ColumnName] = USERNAME (). Таким образом, этот фильтр будет работать, когда у пользователя есть эта конкретная роль.

Мой вопрос: есть ли возможность использовать выражение DAX где угодно для фильтрации данных напрямую с использованием имени пользователя?

заранее спасибо


person Joe Samraj    schedule 24.04.2019    source источник
comment
Вы спрашиваете о DirectQuery в режиме подключения к данным? Или вы хотите импортировать все данные в режиме импорта и фильтровать данные по пользователю в визуальном представлении данных?   -  person Przemyslaw Remin    schedule 24.04.2019
comment
Спасибо за ответ. Я использую DirectQuery. В основном я хочу ограничить данные с помощью USERNAME () без роли   -  person Joe Samraj    schedule 24.04.2019
comment
Вы видели видео Патрика на эту тему youtube.com/watch?v=9wN33rTaiB4?   -  person Przemyslaw Remin    schedule 24.04.2019
comment
Да, видел, если вы видите это видео в 05:34, он добавляет выражение [Имя пользователя] = ИМЯ ПОЛЬЗОВАТЕЛЯ () в группу ролей безопасности. Оно работает. Но мой вопрос: есть ли способ сделать то же самое без группы ролей безопасности, чтобы даже если у пользователя нет этой роли, данные будут отфильтрованы по тому, что с ним связано.   -  person Joe Samraj    schedule 24.04.2019
comment
вы можете использовать пользовательские данные для фильтрации данных на основе идентификатора пользователя / имени входа без необходимости создания роли безопасности. Это просто приведет к передаче строки через API docs.microsoft.com/ en-us / dax / customdata-function-dax   -  person StelioK    schedule 24.04.2019
comment
@StelioK благодарит за ваше предложение. Я дам ему попробовать   -  person Joe Samraj    schedule 25.04.2019


Ответы (1)


Доступ к именам пользователей

Если владеет данными используется для встраивания, то при аутентификации имя пользователя доступно в коде. Или, даже если вы используете Приложение владеет данными, если вы аутентифицируете своих пользователей при доступе к порталу, вы можете получить имя пользователя во время аутентификации.

Ниже приведен пример на JS.

oCommon.authContext.getCachedUser();

Ниже приведен пример на C #.

HttpContext.Current.User.Identity.Name;

Фильтрация во встроенном отчете

Кроме того, используя возможности фильтрации встраивания Power BI, отчет можно отфильтровать. по значению имени пользователя, полученному во время аутентификации.

Избегайте мерцания

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

person Prachi Mishra    schedule 21.02.2020