Статика
Фильтрация по идентификатору
Предположим, вы хотите, чтобы пользователь мог просматривать данные о продажах только по двум странам, которые в таблице измерений имеют идентификаторы 1
и 3
. В нашем примере мы будем использовать данные таблицы Города, в которой есть столбец ID. В этом столбце идентификаторы 1
и 3
соответствуют странам Россия и Китай. Для создания правила фильтрации мы воспользуемся следующим выражением:
'Города' [ID] IN {1, 3}
Данная формула производит фильтрацию таблицы Города, оставляя только те строки, у которых значение поля ID равно 1
или 3
. Таким образом, будут отобраны страны Россия и Китай:
Фильтрация по строке
Аналогичным образом вы можете настроить доступ по строковым значениям, только в этом случае вместо идентификаторов вы будете указывать текст.
Предположим, вам необходимо предоставить доступ только к тем данным, которые относятся к определенной компании. В нашем примере это Contoso, которая указана в столбце Brandname таблицы dimproduct. В этом случае нам необходимо использовать следующее выражение:
'Product' [Brandname] IN {"Contoso"}
Данная формула производит фильтрацию таблицы Product, оставляя только те строки, у которых значение в столбце Brandname соответствует Contoso
. Таким образом, пользователь получит доступ только к тем данным, которые относятся к этой компании.
При необходимости указания нескольких строковых значений (в нашем примере компаний), необходимо перечислить их через запятую в фигурных скобках. Например:
'Product' [Brandname] IN {"Contoso", "Fabricam"}
Указание нескольких условий в одном атрибуте с помощью AND
В данном примере мы рассмотрим ситуацию, в которой нам необходимо ограничить доступ ко всем данным, кроме тех, которые относятся к столицам определенных стран.
Для этого давайте представим, что у нас есть таблица Локация, в которой присутствует два столбца: Country и IsCapital. В столбце Country перечислены различные страны мира, а в столбце IsCapital используется два значения: 1 – если город является столицей и 0 для остальных городов.
Для достижения нашей цели мы укажем два условия в одном атрибуте с помощью функции AND
. Мы выберем строки, где значение столбца IsCapital равно 1 и значение столбца Country соответствует определенной стране. Например, если мы хотим указать столицы Франции и России, наше выражение будет выглядеть так:
AND ('Локация'[Country] IN {"Франция","Россия"}, 'Локация'[IsCapital] IN {"1"})
Указание нескольких условий в нескольких атрибутах
Теперь давайте представим, что нам необходимо предоставить доступ определенному кругу пользователей (например, менеджерам) только к тем данным, которые относятся к ограниченному набору стран. Рабочие таблицы:
Локация, в которой есть столбец Country с перечнем стран;
Должность, в которой есть столбец ID с идентификаторами позиций сотрудников.
Мы хотим, чтобы менеджеры компании (сотрудники с идентификатором 1
) имели доступ только к тем данным, которые относятся к России и Китаю. Для этого мы создадим роль, в которой укажем два выражения: одно будет давать право на доступ к странам Россия и Китай, второе будет предоставлять доступ к этим данным только менеджерам.
Для этого для таблицы Локация мы введем следующее выражение:
'Локация'[Country] IN {"Китай","Россия"}
Для таблицы Должность укажем следующее:
'Должность'[ID] IN {1}
После создания роли мы присвоим ее необходимым пользователям или группам пользователей.
Комбинирование ролей для гибкой настройки доступа
Представьте ситуацию, в которой у вас есть сотрудники с ролью Москва, которая предоставляет доступ к данным по Москве, но вы также хотите, чтобы ваши менеджеры имели доступ не только к данными по Москве, но и ко всем данным, предназначенным для менеджеров. Для этого необходимо создать еще одну роль, например, Менеджеры, и назначить роли Москва и Менеджеры требуемым пользователям или группе пользователей. Выражение для группы Менеджеры в нашем примере будет выглядеть следующим образом:
'Должность'[ID] IN {1}
В итоге менеджеры получат доступ как к данным по Москве, так и к информации, предназначенной для менеджеров.
Предоставление доступа к расширенной информации пользователю, который в ходит в группу, не имеющей права просмотра этих данных
В данном примере мы разберем ситуацию, когда пользователь принадлежит к группе пользователей с ограниченным доступом к данным и вы хотите предоставить ему права на просмотр дополнительной информации.
Допустим, пользователь входит в группу, у которой есть роль Санкт-Петербург, которая предоставляет доступ к данным по Санкт-Петербургу. Но вы хотите, что бы данный пользователь имел также доступ к данным по Пекину. Для этого необходимо создать новую роль, например Пекин, и назначить ее пользователю. Для нашего примера выражение для этой роли будет выглядеть следующим образом:
'Локация'[City] IN {"Пекин"}
Роль группы пользователей | Роль пользователя |
---|---|
Экранирование символов
При наличии кавычек в названии столбцов необходимо использовать специальное синтаксическое оформление вводимого DAX-выражения, чтобы получить синтаксически корректное выражение.
Представим, что вы хотите создать роль для доступа к данным, относящимся к компании, которая указана в загруженной таблице как ООО “ФлосТехнолоджи”. В этом случае для корректной работы формулы необходимо использовать дополнительные двойные кавычки для обозначения названия компании:
'Товары' [Компания] IN {"ООО ""ФлосТехнолоджи"""}
Смотрите также
На этой странице
- 1 Фильтрация по идентификатору
- 2 Фильтрация по строке
- 3 Указание нескольких условий в одном атрибуте с помощью AND
- 4 Указание нескольких условий в нескольких атрибутах
- 5 Комбинирование ролей для гибкой настройки доступа
- 6 Предоставление доступа к расширенной информации пользователю, который в ходит в группу, не имеющей права просмотра этих данных
- 7 Экранирование символов
Время чтения: 4 мин.
Нужна дополнительная помощь?