2016-05-04 7 views
1

Моей первоначальной структура данных выглядит следующим образом:Запросы Shared Drive Права доступа Иерархии с PowerBI в условии использования

ID SecurityGroups_CLEAN EDIT_Drive.1 EDIT_Drive.2 READ_Drive.1 READ_Drive.2 DENY_Drive.1 DENY_Drive.2 DENY_Drive.3 Fullname_CLEAN 
    15 HighStaff    L Drive   null   null   null   null   null   null   Smith, John 
    17 Foreign_National  null   null   null   null   L Drive   M Drive   Q Drive   Smith, John 
    23 Domain Users   U Drive 2  null   L Drive   Q Drive   null   null   null   Smith, John 

После некоторых преобразующие, фильтрация, роторный, удаление столбцов и т.д ... Я сумел заставить его смотреть как это ....

Fullname_CLEAN Drive  Count Permissions 
Smith, John  L Drive  3  DENY_Drive.1 
Smith, John  L Drive  3  EDIT_Drive.1 
Smith, John  L Drive  3  READ_Drive.1 
Smith, John  M Drive  1  DENY_Drive.2 
Smith, John  Q Drive  2  DENY_Drive.3 
Smith, John  Q Drive  2  READ_Drive.2 
Smith, John  U Drive 2 1  EDIT_Drive.1 

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

  1. Если пользователь принадлежит к группе безопасности, на которой есть запрет на доступ к диску, независимо от того, предоставляет ли другая группа пользователей разрешения на чтение или редактирование на этом же диске, уровень их разрешения запрещен.
  2. Если пользователь принадлежит к группе безопасности, которая имеет права на редактирование на диске, то независимо от другой группы пользователей дает права на чтение на том же диске, уровень их разрешения - «Редактировать».
  3. Если пользователь принадлежит к группе безопасности, которая имеет разрешения на чтение на диске, то их уровень разрешений читается.

Для окончательного вывода из:

Fullname_CLEAN Drive  Permissions 
    Smith, John  L Drive  Deny 
    Smith, John  M Drive  Deny 
    Smith, John  Q Drive  Deny 
    Smith, John  U Drive 2 Edit 

Теперь я понимаю, что из-за своего рода и чисто-ABC-совпадению я мог бы просто взять «мин агрегированного столбца» после группировки имени и буква диска, потому что D eny приходит до E dit, который приходит до R ead, и это отражало бы мои условия. Однако я надеялся узнать «правильный» способ сделать это.

ответ

2

Лично для этого сценария я бы оставил его для сортировки ABC, поскольку существует фиксированный набор входов, и они уже сортируются по мере необходимости.

Если вы представляете другой сценарий или разные входы, я бы добавил пользовательский/вычисленный столбец с оператором if if then then else if ..., который возвращает числовые эквиваленты, например.

= if [Permissions] = "Deny" then 0 else if [Permissions] = "Edit" then 1 else if [Permissions] = "Read" then 2 else 999

+0

Благодаря @MikeHoney, см сказал ты, я бы зацепиться быстро! –