Табличка SSAS - применять фильтрацию на уровне строк, считывая разрешения безопасности из Rest API - PullRequest
0 голосов
/ 29 июня 2018

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

Управление нашими бизнес-данными осуществляется в табличной форме SSAS, где бизнес-пользователи могут подключаться к табличной форме SSAS несколькими клиентами, такими как Power BI, SSRS, Excel, остальные API и т. Д. Нам необходимо обеспечить фильтрацию на уровне строк для наших бизнес-данных, где должны быть права. соответствует данным, возвращаемым API Rest.

Я не хочу кэшировать данные безопасности в SSAS, но хочу применить фильтрацию во время выполнения. С MDX это кажется достижимым с помощью хранимых процедур MDX. Похоже, что DAX не предоставляет никакой сохраненной функциональности процедур.

Может кто-нибудь предложить, каковы возможные решения этой проблемы?

Спасибо

1 Ответ

0 голосов
/ 29 июня 2018

В настоящее время не поддерживается способ применения данных безопасности из внешнего источника во время выполнения. Теоретически это можно сделать, если ваша табличная модель использует DirectQuery, но производительность, вероятно, сильно пострадает.

Это означает, что вы застряли с двумя вариантами:

  • Кэширование данных безопасности в таблице в табличной модели, которую вы обновляете из API так часто, как это необходимо (например, раз в 5 минут)
  • Использование TOM для динамического изменения членов ролей ваших ролей безопасности на основе данных, возвращаемых из остальных API. Вам понадобится внешняя работа, которая может делать это так часто, как это необходимо.
...