Безопасность на уровне куба с использованием CustomData

Я новичок в SSAS, но меня попросили создать продукт с тремя кубами (пока что назовите их "A","B" и "C"). Другая группа создает веб-части "A","B" и "C" для доступа к этим кубам, и существуют роли "A","B" и "C", которые определяют, какие пользователи могут получить доступ к кубам.

Моя проблема

Не гарантируется, что сервер SSAS клиента находится в том же блоке, что и сервер SharePoint, поэтому у нас возникли проблемы с тем, как пользователь входит в систему SharePoint, а SP не выдавал себя за этого пользователя. Мы не можем гарантировать, что клиент разрешит нам установить проверку подлинности Kerberos или настроить SharePoint в качестве доверенного сайта, поэтому мы исследуем использование переменной CustomData для передачи идентификатора текущего пользователя.

Вопрос

Однако это приводит к вопросу о реализации безопасности доступа к кубу. Я

  1. Создайте роль "SharePoint", которая принимает переменную CustomData, а затем либо предоставляет (через безопасность измерений?) Доступ к кубу (через все элементы измерения?)
  2. Создайте "куб безопасности", инкапсулируя, у кого есть доступ к чему-либо, и пусть веб-часть определяет, должен ли он "иметь" доступ,
  3. Вместо того, чтобы сохранять безопасность в форме пользователя / куба в таблице фактов, сохраняйте ее в форме пользователя / членов формы измерения (мне это не нравится, поскольку входящие данные находятся в форме пользователя / куба и расширяются до члены измерения создают "ненужные" строки).

Дополнительная справочная информация

В настоящее время безопасность организована по факту, что таблица

| UserKey | SecurityItemKey |

где Personkey ссылается на пользовательскую таблицу, а SecurityItemKey в настоящее время связывается со списком кубов (у нас есть таблица элементов безопасности, чтобы пользователи могли легко перечислять свои параметры и проверять, что они хотят).

В настоящее время я пытаюсь вариант 1. выше, но когда я создаю MDX в соответствии с

Exists(
  {[Security Item].[Security Item Key].&[235]},
    StrToSet("{([User].[User].[User].[" +
            CustomData() + "])}"
    ),
    'Fact Security'
    )

для обеспечения безопасности измерения я получаю ошибки в соответствии с атрибутом "{1}" в измерении "{2}" сгенерированное недопустимое выражение безопасности ". Я использую тот же MDX в запросе, и это нормально.

Обратите внимание, что на измерение, к которому я добавляю это, нет ссылки в MDX, и я волнуюсь, что это является частью проблемы, но я пока не могу найти ничего, говорящего "да" или "нет".

Итак, что я делаю не так, и что вы рекомендуете делать по-другому?

1 ответ

Продолжайте - вот что мы сделали:

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

Обычным пользователям по-прежнему предоставляется доступ к каждому кубу отдельно через отдельные роли.

Итак, проблема безопасности заключается в том, что существует одна роль с доступом ко всем, но мы чувствовали, что это приемлемо, и просто нужно полагать, что члены роли назначены соответствующим образом.

Другие вопросы по тегам