Запрос Active Directory с помощью DAX

Учитывая мою табличную модель, я пытаюсь написать меру, которая изменяет поведение в зависимости от того, к какой роли принадлежит эффективный пользователь. Это не традиционная безопасность на уровне строк (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().


person Jeff    schedule 20.11.2019    source источник


Ответы (1)


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

Для справки, вот фрагмент, который иллюстрирует решение:

EVALUATE
SUMMARIZECOLUMNS (
    "Some Measure",
    IF (
        LOOKUPVALUE('My User'[UsePrivilegedValue], [Name], USERNAME()),
        SUM('Some Fact'[PrivilegedValue]),
        SUM('Some Fact'[OtherValue])
    )
)
person Jeff    schedule 06.12.2019