← Все курсы · Курс Power BI · Все руководства

Безопасность на уровне строк в Power BI: кто фильтруется, а кто нет

Фильтр – это легкая половина. Кого оно связывает, та половина, что идет не так · Часть Analyst Prep Kit

К , аналитик данных · Опубликовано

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

Вот ход. Вы пишете правило в Рабочий стол Power BI в разделе Моделирование › Управление ролями, что-то вроде [Region] = "East". Вы публикуете. Затем вы заходите в службу Power BI, открываете файл семантической модели. Безопасность странице и добавьте людей в эту роль. Два инструмента, два шага и пропуск второго — самая распространенная причина, по которой RLS ничего не делает.

Краткая версия: роль — это фильтр, который отвечает ИСТИНА или ЛОЖЬ для каждой строки, а строки, отвечающие ЛОЖЬ, удаляются. Связывает ли он конкретного человека, зависит от его роли в рабочей области, а не от фильтра.

Во втором предложении находится почти весь ущерб, так что картина понятна.

One path goes through the filter, the other goes around it On the left is a tall stack of sixteen identical narrow bars, drawn in outline, standing for every row in the model. Two routes lead away from that stack to the right. The upper route runs into a funnel, wide where it enters and narrow where it leaves, and comes out the far side as a short stack of only four solid bars, marked Viewer. The lower route leaves the same stack, curves underneath the funnel without touching it, and arrives on the right as a full stack of all sixteen solid bars, marked Admin, Member, Contributor. Same model, same rule, same starting rows. The only difference between the two routes is whether they meet the funnel at all, and the route that misses it delivers everything. Viewer Admin · Member · Contributor
Шестнадцать рядов, одна роль, одно правило. Маршрут по воронке — это то, что получает зритель. Любой, у кого есть права на редактирование модели, выбирает другой путь, и для них правило никогда не работает.
Что вы узнаете
  1. Развилка: может ли этот человек редактировать модель или только читать ее?
  2. Какая на самом деле роль
  3. Два инструмента, два шага: где живут роли и где работают люди
  4. Провал: тренер Востока, увидевший 9890
  5. Две роли — это союз, а не пересечение
  6. Динамический RLS и опечатка, открывающая всю таблицу
  7. Что Просмотреть как доказывает, а что нет
  8. Четыре вещи, которые не делает RLS
  9. Полное до и после
  10. Краевые случаи, которые спокойно возвращают неправильные строки
  11. Почему это работает
  12. Использование этого на вашей собственной модели
  13. Все на одном экране
Каждое число на этой странице можно проверить. Он работает на основе приспособления шестнадцати порядков, используемого в этих руководствах Power BI, и каждая сумма печатается рядом с ее арифметикой. Каждое описанное поведение цитируется из собственной документации Майкрософт в разделе «почему это работает», а не предполагается, потому что это единственная тема на сайте, где быть примерно правым — то же самое, что быть неправильным.

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

ID заказаРегионПродуктЕдиницыВыручка
1001СеверРабочий стол4880
1002ЮгСтул10850
1003ВостокРабочий стол3660
1004СеверЛампа6240
1005ЮгРабочий стол3660
1006ВостокСтул8680
1007СеверСтул5425
1008ЗападЛампа12480
1009ЮгЛампа7280
1010ВостокРабочий стол51,100
1011СеверРабочий стол2440
1012ЗападСтул9765
1013ВостокЛампа15600
1014СеверСтул6510
1015ЮгРабочий стол4880
1016ЗападРабочий стол2440

Четыре региональных итога, и это четыре числа, по которым сверяется остальная часть страницы.

РегионЗаказыВыручкаАрифметика
Север52,495880 + 240 + 425 + 440 + 510
Юг42,670850 + 660 + 280 + 880
Восток43,040660 + 680 + 1,100 + 600
Запад31,685480 + 765 + 440
Все169,8902,495 + 2,670 + 3,040 + 1,685

1. Развилка: может ли этот человек редактировать модель или только читать?

Перед объяснением один вопрос, на который стоит ответить по памяти. Вспомните последний отчет Power BI, которым вы с кем-то поделились. Скажите, может ли этот человек открыть базовую модель и изменить показатель или он может только посмотреть на то, что вы построили.

Этот вопрос, а не правило, которое вы написали, решает, делает ли вообще что-либо безопасность на уровне строк. Есть два ответа.

Ответ один: они умеют только читать. Их роль в рабочей области — «Просмотрщик», или они получили отчет через опубликованное приложение. Если это правда, каждое написанное вами правило применяется к каждому запросу, который они делают, и они видят только те строки, которые разрешены их ролью.

Ответ второй: они могут редактировать. Их роль в рабочей области — администратор, участник или участник. Если это правда, безопасность на уровне строк к ним вообще не применяется. Не частично, не с предупреждением. Они видят каждую строку модели, и отчет не дает им никаких признаков существования правила.

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

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

2. Что на самом деле представляет собой роль

Роль — это имя плюс один или несколько фильтров, каждый из которых прикреплен к таблице. Фильтр представляет собой выражение DAX, которое запрашивается о каждой отдельной строке и должно отвечать ИСТИНА или ЛОЖЬ. Формулировка Майкрософт заслуживает внимания: «Фильтр DAX оценивает ВЕРНО/ЛОЖЬ для каждой строки. Видны только строки, которые возвращают TRUE. Все остальное полностью удаляется».

Полностью удалена та часть, за которую нужно держаться. Это не фильтр отчета, который может очистить пользователь, и это не фильтр по умолчанию, который можно переопределить на панели «Фильтры». Строки исчезают до того, как визуальный элемент будет нарисован.

Самое простое полезное правило, введенное в редакторе DAX в разделе «Моделирование › Управление ролями», — это сравнение:

[Region] = "East"

Скажите вслух, что это за заказ 1004 — лампа Севера. ЛОЖЬ, поэтому строка удаляется. Заказ 1013 — это восточная лампа, поэтому ИСТИНА, поэтому ряд остается. Шестнадцать вопросов, четыре ответа типа «ИСТИНА», а модель, которую запрашивает участник роли «Восток», имеет четыре строки в разделе «Заказы» и общее количество 3040.

Одно правило именования, которое цепляет людей, и оно документировано, а не фольклорно: имя роли не может содержать запятую. London,ParisRole отклонено.

Фильтры приземляются на один стол и затем перемещаются. Фильтры RLS распространяются через отношения модели так же, как и любой другой фильтр, поэтому обычно лучше поместить правило в небольшую таблицу измерений и позволить ему перейти в таблицу фактов. Это еще один аргумент в пользу правильного Схема звезды, и руководство Майкрософт прямо говорит об этом: «часто более эффективно применять фильтры RLS к таблицам измерений, а не к таблицам фактов».

3. Два инструмента, два шага: где живут роли и где работают люди

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

ШаггдеЧто вы делаете
1. Определите рольРабочий стол Power BIМоделирование › Управление ролями. Назовите ее, выберите таблицу, напишите фильтр DAX.
2. ОпубликоватьРабочий стол в сервисОпределения ролей перемещаются вместе с моделью. Членства нет, потому что оно еще не существует.
3. Назначьте людейСлужба Power BIСемантическая модель › Безопасность. Добавьте пользователей или группы безопасности к каждой роли.
4. ПодтвердитьИлиПросмотреть как на рабочем столе или протестировать как роль в службе.

Вы не можете назначать пользователям роли в Рабочий стол. Эта опция не скрыта и не скрыта, ее нет, поскольку Рабочий стол не знает, кто работает в вашей организации. А страница «Безопасность» в Службе отображается только для моделей, для которых уже определены роли, поэтому модель без ролей не дает вам ничего нажимать и не дает никаких объяснений.

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

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

4. Провал: менеджер Востока, увидевший 9890

Здесь это проработано от начала до конца, и именно такая версия и происходит на самом деле.

Прия управляет Восточным регионом. Вы строите модель, пишите [Region] = "East" в роль Восток, опубликуйте ее, добавьте Прию к роли в Сервисе и протестируйте ее. Тест пройден: четыре заказа, 3040.

Однако несколькими неделями ранее в рабочую область была добавлена ​​Прия, чтобы она могла открыть три других отчета, которые команда хранит там. Ей дали Член. Никто не связывал эти два решения, потому что они были приняты разными людьми по разным причинам в разные дни.

Прия открывает свою региональную карточку. Он читает 9,890.

Что было задуманоЧто она видитзазор
3040, четыре Восточных ордена9890, все шестнадцать заказов6,850 (9,890 − 3,040)

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

Потому что показывать нечего. RLS ничего не выделяет серым и не добавляет баннер. Он удаляет строки до возврата запроса, поэтому отчет без удаленных строк идентичен отчету, в котором никогда не было правила. На карте Прии не отображается ошибка. Он отображает правильную сумму для строк, которые ей дали, и ей были даны все из них.

Исправление — это один раскрывающийся список, которого нет в модели. На панели доступа к рабочей области измените Прия с Член на Зритель. Она сохраняет отчеты, не теряет ничего из того, что использует, и правило начинает действовать. Если ей нужно построить свои собственные отчеты на основе модели, дайте ей разрешение «Просмотр плюс сборка» для семантической модели, поскольку RLS по-прежнему применяется к средствам просмотра, у которых есть «Сборка». Майкрософт прямо заявляет об этом, в том числе для анализа в Эксель.

А теперь представьте это на рабочем месте, которым вы действительно владеете. Откройте список доступа и прочитайте роли, а не имена. Скажите вслух, сколько человек могут редактировать текст и каждый ли из них должен видеть каждую строку. Это количество и есть реальная область действия вашего правила безопасности.

5. Две роли — это союз, а не пересечение

Прежде чем объяснение, предсказание. Кто-то находится в роли, которая разрешает Восток, и вы также добавляете его в роль, которая разрешает лампы. Скажите, увидят ли они в конечном итоге только восточные лампы или что-то большее.

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

Рекомендации Майкрософт однозначны: «Когда пользователю отчета назначено несколько ролей, фильтры RLS становятся аддитивными. Это означает, что пользователи отчета могут видеть строки таблицы, которые представляют собой объединение этих фильтров». А предложение сразу после него следует запомнить, поскольку оно указывает на нарушение допущения: «в отличие от разрешений, применяемых к объектам базы данных SQL Server (и других моделей разрешений), принцип «однажды отклонено, всегда запрещено» не применяется».

Работал над приборкой. Роль «Восток» разрешает заказы 1003, 1006, 1010 и 1013. Роль «Лампы» разрешает каждый заказ лампы, то есть 1004, 1008, 1009 и 1013.

Что вы получаетеЗаказыВыручкаАрифметика
Восточная роль одна1003, 1006, 1010, 10133,040660 + 680 + 1,100 + 600
Роль ламп одна1004, 1008, 1009, 10131,600240 + 480 + 280 + 600
Чего люди ожидают от обоих1013600Одна восточная лампа
Что на самом деле дают обасемь заказов4,040660 + 240 + 680 + 480 + 280 + 1,100 + 600

Ожидалось 600, доставлено 4040, и 4040 минус 600 = 3440 строк, которые никто не собирался передавать. Добавление второй роли расширило доступ, что противоположно тому, как звучит «добавление ограничения».

Собственная иллюстрация этого Майкрософт более яркая, чем моя, и ее стоит держать в голове как крайний случай. Роль Рабочие ограничивает таблицу расчета заработной платы правилом FALSE(), поэтому он вообще не возвращает строк. Роль менеджеров использует TRUE(), поэтому он возвращает все. Тот, кто сопоставляет обе роли, видит всю таблицу заработной платы. Отрицание не побеждает. Нет никаких отрицаний.

Исправление — это правило дизайна, а не настройка: один человек, одна роль. Если человеку нужен Восток и лампы вместе, создайте единую роль, которая несет в себе оба фильтра, по одному на каждом столе, чтобы оба условия применялись одновременно. Руководство Майкрософт рекомендует именно это, и стоит отметить причину, по которой оно приводится: пользователь может получить вторую роль косвенно, через группу безопасности, и никто не решит поместить его туда.

6. Динамический СБН и опечатка, открывающая всю таблицу

Написание одной роли для каждого региона не выходит за рамки нескольких. Динамический RLS — это одна роль для всех, где правило сравнивает столбец со всеми, кто вошел в систему.

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

[UserEmail] = USERPRINCIPALNAME()

USERPRINCIPALNAME не принимает аргументов и возвращает имя участника-пользователя во время подключения, которое выглядит как адрес электронной почты. Фильтр попадает в таблицу сопоставления, таблица сопоставления связана с регионом, а фильтр перемещается вниз по этой связи к заказам. Одна роль, одно правило, и добавление нового менеджера становится строкой в ​​таблице, а не изменением модели.

Существует более старая функция USERNAME, и эта разница — настоящая ловушка, а не мелочь. В ИМЯ ПОЛЬЗОВАТЕЛЯ Рабочий стол Power BI возвращает DOMAIN\User. В службе ИМЯ ПОЛЬЗОВАТЕЛЯ Power BI и USERPRINCIPALNAME возвращают имя участника-пользователя. Таким образом, правило, созданное и протестированное со значением доменного типа в Рабочий стол, после публикации может вести себя по-другому. Используйте USERPRINCIPALNAME и сохраните соответствующие значения в таблице сопоставления.

Теперь часть стоит целый раздел. Этот шаблон, который читается совершенно разумно, приводит к опечатке во всей таблице:

IF (
    USERNAME () = "Worker",
    [Type] = "Internal",
    TRUE ()
)

Рабочие видят внутренние ряды. Все остальные, то есть менеджеры, все видят. Но «все остальные» — это не список менеджеров. Это каждое значение, которое не является строкой. Worker, так Wrker попадает в ветку Еще и возвращает TRUE для каждой строки. В руководстве Майкрософт используется именно этот пример, и его исправление состоит в том, чтобы проверить каждое ожидаемое значение и запретить провал:

IF (
    USERNAME () = "Worker",
    [Type] = "Internal",
    IF (
        USERNAME () = "Manager",
        TRUE (),
        FALSE ()
    )
)

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

7. Что доказывает точка зрения, а что нет

На рабочем столе на ленте «Моделирование» есть «Просмотр как», а на странице «Безопасность» модели у службы есть роль «Тестировать как». Оба действительно полезны, и оба доказывают меньше, чем думают люди.

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

Чего они не доказывают, и это документально, а не фольклорно:

Тест, который восполняет пробел, непривлекательный и занимает две минуты: поместите в отчет карточку, показывающую USERPRINCIPALNAME(), опубликуйте и попросите одного реального человека из каждой аудитории открыть его и рассказать вам, что там написано рядом с их итоговыми данными. Руководство Майкрософт по устранению неполадок предлагает ту же меру, названную примерно так: «Кто я». Настоящая сессия пользователя — единственное, что тренирует обе половины одновременно.

8. Четыре вещи, которых не делает RLS

Каждый из этих дней — чей-то разочарованный день.

Он не скрывает столбцы или меры. Майкрософт прямо говорит об этом: RLS «фильтрует строки таблицы. Их нельзя настроить для ограничения доступа к объектам модели, включая таблицы, столбцы или меры». Если человек видит строку, он может видеть каждый столбец в этой строке, включая зарплату. Функция скрытия столбца — это безопасность на уровне объекта, и она является отдельной.

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

Он не может быть переопределен DAX ни в каком направлении. Это касается обоих путей, и его стоит знать. Ни одна мера не может обойти RLS, и Майкрософт идет еще дальше: выражение DAX «даже не может определить, что RLS применяется». Таким образом, невозможно написать более разумную меру, чтобы обойти эту проблему, и в равной степени нельзя случайно проделать в ней дыру с помощью ВСЕХ или УДАЛЕННЫХ ФИЛЬТРОВ. Если вам нужна механика того, что может и не может видеть мера, то это РАСЧЕТ и фильтрация контекста.

Модель не везде следует этой модели. Живые подключения к службам Аналитические услуги обеспечивают безопасность в этой модели, а не в Power BI, а параметр «Безопасность» даже не отображается. Публикация в Интернете вообще не работает с RLS. Субъекты-службы не могут быть добавлены в роль, поэтому приложение, проверяющее подлинность таким образом, не фильтруется по ним.

Полное до и после

Та же модель, те же правила, тот же человек. Один раскрывающийся список отдельно.

Раньше: Прия — участница рабочей областиПосле: Прия — зритель
Роль существует в моделиДаДа
Прия назначена на этоДаДа
Просмотреть как на рабочем столеПроходит, показывает 3040Проходит, показывает 3040
Тест как роль в СервисеПроходит, показывает 3040Проходит, показывает 3040
Что на самом деле видит Прия9890, все шестнадцать заказов3040, ее четыре заказа
Может ли она по-прежнему открывать отчеты?ДаДа
Сможет ли она построить свою собственную?ДаДа, с разрешением на сборку, по-прежнему фильтруется
Все, что на экране говорит об этомНетНет

Последние две строки — это точка страницы. Каждый тест, который вы можете запустить со своего стола, проходит в обоих столбцах.

Краевые случаи, которые спокойно возвращают неправильные строки

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

Почему это работает

Причина создания обхода оправдана, если сказать это прямо: люди, которые могут редактировать модель, уже могут видеть данные, потому что редактирование модели означает ее чтение. Участник может открыть семантическую модель, написать собственную меру и прочитать в ней любое число. Фильтрация их отчета, оставляя модель открытой для них, была бы замком на двери без прикрепленной стены. Майкрософт указывает границу в одной строке: «RLS ограничивает доступ к данным только для пользователей с разрешениями просмотра. Это не применяется к ролям администратора, участника или участника рабочей области».

Таким образом, элемент управления является реальным, а его областью действия является роль рабочей области. Это делает это примером старейшего правила в этой области. Зальцер и Шредер изложили восемь принципов проектирования защиты информации, и на этой странице постоянно встречается принцип минимальных привилегий: каждый пользователь должен работать с наименьшим набором привилегий, необходимых для его работы (Продавец & Шредер, 1975, Труды IEEE, 63(9), 1278–1308). Прие были предоставлены права редактирования, чтобы она могла прочитать четыре отчета. Дополнительные привилегии не были целью решения и молчаливо превосходили правило безопасности.

Другой их принцип, который стоит упомянуть здесь, — это отказоустойчивые настройки по умолчанию: доступ основан на разрешении, а не на исключении, поэтому результатом по умолчанию является отсутствие доступа. Именно такова форма поведения аддитивных ролей. Правило, возвращающее FALSE, ничего не дает; оно не отрицает. Объедините это с правилом, которое предоставляет все, и вы получаете все, поэтому исправлением является одна роль на человека, а не тщательно слоистая их стопка.

Одно замечание в шпаргалке ниже. Он создан для того, чтобы его просматривали и вспоминали, а не читали, потому что тестирование переноса материала в новые ситуации лучше, чем его повторное изучение, что здесь важно, поскольку вы будете применять его к рабочим пространствам, которые совсем не похожи на приведенные выше (Батлер, 2010, Журнал экспериментальной психологии: обучение, память и познание, 36(5), 1118–1133).

Использование этого на вашей собственной модели

Аудит каждой роли в унаследованном клиенте утомителен, и вы остановитесь на втором рабочем пространстве. Вместо этого сделайте это по порядку.

  1. Прежде чем открыть модель, откройте список доступа к рабочей области. Читайте роли, а не имена. Все, кто указан как администратор, участник или участник, видят каждую строку, что бы ни гласили ваши правила. Этот список является ответом на вопрос «кто может видеть все», и он занимает тридцать секунд.
  2. Переместите каждого потребителя в Зритель. Если кому-то нужно построить модель, это можно сделать с помощью разрешения «Просмотр плюс сборка», которое останется отфильтрованным. Права на редактирование принадлежат людям, которые редактируют.
  3. Считайте роли на человека, а не людей на роль. Любой, кто выполняет две роли, получает профсоюз. Расширьте группы безопасности, потому что именно там скрывается вторая роль.
  4. Прочтите последнюю ветвь каждого динамического правила. Если значение TRUE, неожиданное имя для входа возвращает всю таблицу. Сделайте его FALSE и проверьте значение, которое, как вы знаете, неверно.
  5. Опубликуйте карточку «Кто я». Одна карта с USERPRINCIPALNAME() рядом с итоговыми данными, и один реальный человек из каждой аудитории рассказывает вам, что там написано. Это единственный тест, который одновременно охватывает роль рабочей области и правило.
  6. Запишите, для кого предназначена каждая роль. Одно предложение на роль, хранящееся вместе с моделью. Роли переживают человека, который их написал, а роль, которую никто не может объяснить, — это роль, которую никто не посмеет удалить.

Если у вас под рукой есть бумага, один дополнительный эскиз заставит правило сложения работать. Нарисуйте два перекрывающихся круга, назовите один «Восток» и один «Лампы» и заштрихуйте небольшой участок в месте их перекрытия. Именно это большинство людей ожидают от двух ролей. Теперь заштрихуйте оба целых круга. Вот что на самом деле дают две роли. Вы больше не ошибетесь.

Подробнее об этом и еще что-нибудь подобное. Все инструкции находятся в одном месте на индекс направляющих: Power BI, SQL, Excel и связанные с ними рабочие привычки.

Все на одном экране

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

вещьЧто он делает
Что такое рольФильтр DAX запрашивает каждую строку. TRUE остается, FALSE полностью удаляется.
Где определены ролиРабочий стол Power BI, Моделирование › Управление ролями.
Где назначаются членыСлужба Power BI, семантическая модель › Безопасность. Никогда на рабочем столе.
На кого распространяется RLSЗрители и потребители приложений. Вот и весь список.
Кого это не касаетсяАдминистратор рабочей области, участник и участник. Специально, без предупреждения.
Просмотр плюс сборкаЕще фильтруется, в том числе через Анализ в Эксель.
Две ролиСоюз. Больше данных, а не меньше. «Однажды отказано всегда отказано» не применяется.
Правило дизайнаОдин человек, одна роль. Вместо этого поместите оба фильтра в одну и ту же роль.
Пользователь без ролиОбычно ничего не видит, потому что ни одна роль не разрешает ни одной строки.
Статическое правило[Region] = "East"
Динамическое правило[UserEmail] = USERPRINCIPALNAME(), против таблицы сопоставления.
USERNAME vs USERPRINCIPALNAMEВ ИМЯ ПОЛЬЗОВАТЕЛЯ рабочего стола дает DOMAIN\ пользователь. В Сервисе оба дают UPN.
Опасное ещеЕсли значение TRUE отсутствует, таблица будет обнаружена при любой опечатке. Конец на ЛОЖЬ.
Какой взгляд доказываетПравило и его распространение. Ни роль на рабочем месте, ни личность другого человека.
Распространение фильтраТолько активные отношения. Безопасность в обе стороны — это отдельный флажок.
Где поставить правилоВ таблице измерений и пусть она перетекает в таблицу фактов.
Что РЛС не может скрытьСтолбцы и меры. Это безопасность на уровне объекта.
Имена ролейЗапятые не допускаются.
Единственная привычка, которую следует сохранить. Прежде чем доверять правилу, прочтите список доступа к рабочей области. Любой, кто находится над Зритель, видит каждую строку, и никакие правильные DAX этого не изменят. Это первое, что нужно проверить, и последнее, о чем кто-либо думает, и это занимает тридцать секунд.

Еще одна мысль, и мне бы искренне хотелось услышать ответы других людей. Версия этого, которую мне было труднее всего объяснить впоследствии, представляла собой модель, в которой правила были совершенны, и три человека были добавлены в рабочее пространство в качестве участников во время передачи управления в течение двух недель, восемнадцать месяцев назад. Их никто не вынимал и никто не заметил, потому что в отчетах ничего не отличалось. Какой из них был открыт дольше всего в арендаторе, который вы унаследовали?

Ссылки

Правило написано, тест пройден, а вы все еще не можете сказать вслух, кто из одиннадцати человек в этом рабочем пространстве может все видеть.

Power BI для аналитиков состоит из 187 страниц, модель строит одно решение за раз, с этапами совместного использования и разрешения, которые решают, является ли какое-либо из них верным, и практическими вопросами, которые печатают ответ и причину, по которой он правильный.

Power BI для аналитиков, 19 долларов США →
Практикуйте это там, где неправильный ответ выглядит как правильный.

тот Курс Power BI дает вам повторения: правила, которые проходят все тесты и никого не фильтруют, роли, которые складываются в объединение, и вопросы, которые спрашивают, кто может видеть строку, а не как написать DAX. Теперь вы владеете методом; комплект - это практика. Ничего устанавливать, учетная запись не требуется.

Откройте комплект Power BI →