/
Статика

Статика

Фильтрация по идентификатору

Предположим, вы хотите, чтобы пользователь мог просматривать данные о продажах только по двум странам, которые в таблице измерений имеют идентификаторы 1 и 3. В нашем примере мы будем использовать данные таблицы Города, в которой есть столбец ID. В этом столбце идентификаторы 1 и 3 соответствуют странам Россия и Китай. Для создания правила фильтрации мы воспользуемся следующим выражением:

'Города' [ID] IN {1, 3}

Данная формула производит фильтрацию таблицы Города, оставляя только те строки, у которых значение поля ID равно 1 или 3. Таким образом, будут отобраны страны Россия и Китай:

ex1.png

Фильтрация по строке

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

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

'Product' [Brandname] IN {"Contoso"}

Данная формула производит фильтрацию таблицы Product, оставляя только те строки, у которых значение в столбце Brandname соответствует Contoso. Таким образом, пользователь получит доступ только к тем данным, которые относятся к этой компании.

static2.png

При необходимости указания нескольких строковых значений (в нашем примере компаний), необходимо перечислить их через запятую в фигурных скобках. Например:

'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 {"ООО ""ФлосТехнолоджи"""}


Смотрите также

Настройка статической RLS
Настройка динамической RLS

 

Related content

Динамика
Динамика
Read with this
Статика
More like this
Настройка статической RLS
Настройка статической RLS
Read with this
Статика
More like this
Настройка динамической RLS
Настройка динамической RLS
Read with this
Статика
More like this