Учитывая мою табличную модель, я пытаюсь написать меру, которая изменяет поведение в зависимости от того, к какой роли принадлежит эффективный пользователь. Это не традиционная безопасность на уровне строк (RLS), поскольку я не пытаюсь фильтровать по ролям; вместо этого просто выполните if-else.
Я нашел следующее решение по адресу https://community.powerbi.com/t5/Desktop/DAX-Expression-For-Role-Level-Security-Using-DirectQuery/td-p/489699, что я считаю будет работать, но я бы предпочел запрашивать активный каталог, чтобы узнать, принадлежит ли пользователь к указанной роли, а не к другой таблице в модели.
Я также видел несколько статей (например, https://community.powerbi.com/t5/Desktop/How-to-leverage-Active-Directory-to-filter-the-data-in-Power-BI/td-p/140479) о получении атрибутов из активного каталога для Power BI, но ничего, что раскрывает используемый DAX.
В итоге, если бы я мог получить имя роли в DAX или вызвать функцию, чтобы проверить, находится ли пользователь в роли, я был бы золотым (при условии, что производительность не скомпрометирована).
Изменить: я должен добавить, что в настоящее время я использую одну из трех функций, чтобы получить пользователя. USERNAME()
, USEROBJECTID()
и USERPRINCIPALNAME()
.