Доступ к данным в BusinessObjects через группы Active Directory

У меня разные группы Active Directory и одна вселенная BO. Разные группы Active Directory должны иметь разные ограничения доступа к данным в юниверсе. Как я могу это реализовать? (к сожалению, я не нашел соответствующего руководства или документации в сети.) Если существует более одного способа реализации доступа к данным, каков наилучший способ? Спасибо.


person Adam    schedule 05.11.2013    source источник
comment
Какая версия БО? Если BI4, используете ли вы IDT или UDT? Вы ищете безопасность на уровне строк (при которой все пользователи видят все объекты юниверса, но определенные строки отфильтровываются по группам) или на уровне столбцов (при которой объекты юниверса видны только определенным группам)?   -  person Joe    schedule 06.11.2013
comment
Спасибо за ваш отзыв, Джо. Я использую BO 4, IDT. Я все еще жду отзывов по другим вопросам и свяжусь с вами, когда я оживлю его. Между тем, есть ли какой-нибудь учебник или документация на YouTube, которую я могу найти?   -  person Adam    schedule 06.11.2013
comment
Руководство пользователя IDT находится здесь. См. разделы 17.4 и 17.5 для получения информации о применении ограничений безопасности.   -  person Joe    schedule 06.11.2013
comment
Привет @Joe - только что получил отзыв: должна быть реализована безопасность на уровне строк.   -  person Adam    schedule 07.11.2013


Ответы (1)


Существует два основных способа реализации безопасности на уровне строк в юниверсе. Один через профиль безопасности; другой через @variable('BOUSER').

Если безопасность должна применяться на уровне группы (то есть ко всем членам группы должно применяться одно и то же условие), тогда подходит профиль безопасности. Это описано в главе 17 Руководства пользователя IDT. На высоком уровне шаги следующие:

  • Из IDT запустите Редактор безопасности.
  • Выберите юниверс и создайте либо Профиль безопасности данных, либо Профиль безопасности бизнеса (о различиях между ними читайте в документации, но одно из них заключается в том, что с DSP вы будет писать условие ГДЕ; с BSP вы выбираете объекты и определяете условие)
  • После создания профиля безопасности выберите группу или группы, к которым он должен применяться.
  • Повторите вышеуказанное для каждой группы, к которой должно быть применено ограничение.

Другой метод применения безопасности на уровне строк применим только в том случае, если источник данных включает в себя таблицу, имеющую сопоставление идентификаторов пользователей BO со значениями, к которым у них может быть доступ. Например, предположим, что у вас есть таблица безопасности в вашем источнике данных, которая выглядит следующим образом:

user_id  region
-------  ------
U123     NE
U123     SE
U321     W

и ваша таблица фактов выглядит так:

pk   region   value
__   ______   _____
 1       NE       3
 2        W       4

Вы можете применить защиту, чтобы пользователь U123 видел только строку «NE», а пользователь U321 видел только строку «W». Вы должны объединить две таблицы в регионе (security.region=fact.region), а затем создать новый обязательный фильтр в security.user_id=@variable('BOUSER'). Это заставит фильтр применяться ко всем запросам.

Обратите внимание, что оба вышеуказанных метода работают, добавляя условия к условию запроса WHERE. Если у ваших пользователей есть разрешение на просмотр и редактирование SQL запроса, они будут выше, чтобы переопределить логику фильтрации. Для обеспечения безопасности пользователям следует отказать в этом праве.

person Joe    schedule 07.11.2013
comment
еще один вопрос - в CMC мне нужно создать группу пользователей, а затем добавить участников в эту группу ИЛИ я могу просто создать группу Active Directory с определенными пользователями, а затем назначить эту группу AD определенному профилю безопасности данных? Какой вариант лучше? - person Adam; 08.11.2013
comment
Сопоставление группы AD должно быть проще — см. раздел «Аутентификация» в CMC. - person Joe; 08.11.2013