Я новичок в SSAS, но меня попросили создать продукт с тремя кубами (пока что назовите их «A», «B» и «C»). Другая группа создает веб-части «A», «B» и «C» для доступа к этим кубам, и существуют роли «A», «B» и «C», которые определяют, какие пользователи могут получить доступ к кубам.
Моя проблема
Не гарантируется, что клиентский сервер SSAS находится в том же ящике, что и сервер SharePoint, поэтому у нас возникли проблемы с входом пользователя в систему SharePoint, а SP не выдавал себя за этого пользователя. Мы не можем гарантировать, что клиент разрешит нам установить проверку подлинности Kerberos или настроить SharePoint в качестве доверенного сайта, поэтому мы исследуем использование переменной CustomData для передачи идентификатора текущего пользователя.
Вопрос
Однако это приводит к вопросу о реализации безопасности доступа к кубу. Я
- Создать роль «SharePoint», которая принимает переменную CustomData, а затем либо предоставляет (через безопасность измерений?) Доступ к кубу (через все элементы измерения?)
- Создайте «куб безопасности», инкапсулирующий, у кого есть доступ к чему, и пусть веб-часть определяет, должен ли он «иметь» доступ,
- Вместо того, чтобы сохранять безопасность в форме пользователя / куба в таблице фактов, сохраняйте ее в форме пользователя / членов формы измерения (мне это не нравится, поскольку входящие данные находятся в форме пользователя / куба и расширяются это из членов измерения создает «ненужные» строки).
Дополнительная справочная информация
В настоящее время безопасность организована в виде таблицы фактов
| UserKey | SecurityItemKey |
, где Personkey ссылается на таблицу пользователей, а SecurityItemKey в настоящее время ссылается на список кубов (у нас есть таблица элементов безопасности, чтобы пользователи могли легко перечислять свои параметры и проверять, что они хотят).
В настоящее время я пробую вариант 1. выше, но когда я создаю MDX в соответствии с
Exists(
{[Security Item].[Security Item Key].&[235]},
StrToSet("{([User].[User].[User].[" +
CustomData() + "])}"
),
'Fact Security'
)
для безопасности измерения, я получаю ошибки в строках «Атрибут« {1} »в измерении« {2} »имеет недопустимое сгенерированное выражение безопасности измерения».
Я использую тот же MDX в запросе, и это нормально.
Обратите внимание, что на измерение, к которому я добавляю это, нет ссылки в MDX, и я волнуюсь, что это является частью проблемы, но я пока не могу найти ничего, говорящего "да" или "нет".
Итак, что я делаю не так, и что вы рекомендуете делать по-другому?