title: Data sandboxes

Режим ограниченного доступа (песочницы данных)

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

Предположим, у вас есть таблица Учетные записи с информацией о ваших покупателях. Если вы хотите использовать один дашборд для разных команд (когда, к примеру, только команда Customer Success должна видеть электронные адреса покупателей, а другие - не должны), вы используете ограниченный доступ, чтобы автоматически фильтровать этот дашборд для каждой команды.

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

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

Если вы готовы приступить к делу, попробуйте наши Примеры песочниц данных.

Как работает ограниченный доступ

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

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

  • Отфильтрованную версию таблицы, которая заменит исходную таблицу везде, где исходная таблица используется в GlarusBI.

  • Группу пользователей, которые должны видеть отфильтрованную версию таблицы.

Вы можете определить ограничение доступа для каждого сочетания таблица/группа в вашей GlarusBI. Это означает, что вы можете отображать разные версии таблицы для разных групп, например, “Отфильтрованные учетные записи для продавцов” для ваших продавцов и “Отфильтрованные учетные записи для менеджеров” для менеджеров по продажам.

Типы ограничения доступа

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

  • Фильтровать строки для указанных пользователей с помощью базового ограниченного доступа.

  • Фильтровать столбцы (также как и строки) для указанных пользователей с помощью [пользовательского ограниченного доступа](#custom-data-sandboxes-use-a-saved-question-to-create-a-custom-view-of- a-table) (также известного как расширенный ограниченный доступ).

| | Базовый ограниченный доступ (фильтр по столбцу таблицы) | Пользовательский ограниченный доступ (используется сохраненный вопрос SQL) | | —————————————– | ——————————- | ————————————— | | Фильтровать строки по одному столбцу | ✅ | ✅ | | Фильтровать строки по нескольким столбцам | ❌ | ✅ | | Фильтровать столбцы | ❌ | ✅ | | Редактировать столбцы | ❌ | ✅ |

Базовый ограниченный доступ: фильтрация по столбцу таблицы

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

Например, вы можете создать базовый ограниченный доступ для фильтрации таблицы “Счета” для группы, чтобы:

  • Пользователь со значением атрибута пользователя “Базовый” увидит те строки, в которых “План” = “Базовый” (строки, в которых значение в столбце “План” соответствует значению “Базовый”).

  • Пользователь со значением атрибута пользователя “Премиум” увидит те строки, где “План” = “Премиум” (строки, где значение в столбце “План” соответствует значению “Премиум”).

Пользовательский ограниченный доступ: используйте сохраненный вопрос, чтобы создать собственное представление таблицы

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

Например, предположим, что в вашей исходной таблице “Учетные записи” есть столбцы “ID”, “Электронная почта”, “План” и “Создано”. Если вы хотите скрыть столбец “Электронная почта”, вы можете создать SQL-вопрос “Фильтрованные учетные записи” со столбцами: “ID”, “План” и “Создано”.

При использовании пользовательского ограниченного доступа будет отображать результат вопроса “Фильтрованные учетные записи” вместо исходной таблицы “Учетные записи” для нужной группы везде, где таблица “Учетные записи” используется в GlarusBI.

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

Ограничения

Вещи, которые не очень хорошо работают в ограниченном доступе.

Группы с разрешениями на прямые SQL-запросы (доступом к редактору SQL) не могут быть использоваться с ограниченным доступом

Пользователи, имеющие доступ к базе данных с помощью редактора SQL, всегда смогут запросить любую исходную таблицу из этой базы данных. Это связано с тем, что GlarusBI не может проанализировать SQL-запрос – если GlarusBI не может найти таблицу, то GlarusBI не может ограничить доступ к ней ее.

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

SQL-вопросам нельзя ограничить доступ

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

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

Базы данных, отличные от SQL, нельзя помещать в песочницу

Ограниченный доступ нельзя использовать в не-SQL базах данных, таких как Apache Druid или MongoDB.

Предварительные требования для базового ограниченного доступа

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

  • Назначьте атрибуты пользователя каждому пользователю в этой группе.

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

Например, вы можете настроить базовый ограниченный доступ так, чтобы:

  • Пользователь со значением атрибута пользователя “Базовый” увидел версию таблицы “Учетные записи” с фильтром “План” = “Базовый” (строки, в которых значение в столбце “План” соответствует значению “Базовый”).

  • Пользователь с атрибутом “Премиум” увидел версию таблицы “Учетные записи” с фильтром “План” = “Премиум”.

Выбор атрибутов пользователя для настройки ограниченного доступа

Атрибуты пользователя обязательны для базового ограниченного доступа и необязательны для пользовательского ограниченного доступа. При добавлении нового атрибута пользователя вы настраиваете пару ключ-значение для каждого пользователя.

Ключ атрибута пользователя используется для поиска значения атрибута пользователя для конкретного человека. Ключи пользовательских атрибутов можно сопоставить с параметрами в GlarusBI.

Значение пользовательского атрибута должно точно, с учетом регистра, соответствовать значению фильтра таблицы с ограниченным доступом. Например, если вы настраиваете базовый ограниченный доступ к таблице “Учетные записи” с фильтром “План” = “Базовый”, убедитесь, что в качестве значения атрибута пользователя вы ввели именно “Базовый”. Если вы установите значение атрибута пользователя в нижнем регистре “базовый” (значение, которого нет в столбце “План” таблицы “Учетные записи”), то человек, использующий ограниченный доступ, получит пустой результат вместо отфильтрованной таблицы.

Примеры использования пользовательских атрибутов:

Создание базового ограниченного доступа

  1. Обязательно сначала выполните предварительные требования для базового ограниченного доступа.

  2. Откройте Настройки администратора > Разрешения.

  3. Выберите базу данных и таблицу, для которых вы хотите настроить ограниченный доступ.

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

  5. Нажмите раскрывающийся список в разделе Доступ к данным для этой группы.

  6. Выберите “Ограниченный доступ”.

  7. Нажмите на раскрывающийся список в разделе Столбец и введите столбец, по которому нужно отфильтровать таблицу, например, “План”.

  8. Нажмите на раскрывающийся список под Атрибут пользователя и введите ключ атрибута пользователя, например, “План пользователя”.

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

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

Предварительные требования для пользовательского ограниченного доступа

  • Выберите группу пользователей, которые будут добавлены в песочницу.

  • Выберите коллекцию, доступную только администратору, с разрешениями коллекции, установленными на Нет доступа для всех групп, кроме Администраторы.

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

  • Необязательно: если вы хотите ограничить строки в пользовательской песочнице, настройте атрибуты пользователя для каждого пользователя в группе.

Создание в GlarusBI вопроса SQL для отображения в режиме пользовательского ограниченного доступа

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

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

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

Отображение отредактированных столбцов в режиме пользовательского ограниченного доступа

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

Например, вы можете создать SQL-вопрос “Фильтрованные счета”, который усекает столбец “Электронная почта” для отображения имен пользователей вместо полных адресов электронной почты.

Если вы редактируете столбец, схема сохраненного вопроса SQL (вопроса, который вы хотите отобразить в ограниченном доступе) должна соответствовать схеме исходной таблицы. Это означает, что вопрос SQL “Фильтрованные учетные записи “ должен возвращать то же количество столбцов соответствующих типов данных, что и исходная таблица “ Учетные записи “.

Вы не можете добавить столбец при использовании пользовательского ограниченного доступа.

Создание пользовательского ограниченного доступа

  1. Обязательно сначала выполните предварительные условия для пользовательского ограниченного доступа.

  2. Откройте Настройки администратора > Разрешения.

  3. Выберите базу данных и таблицу, для которых вы хотите настроить ограниченный доступ.

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

  5. Откройте раскрывающийся список в разделе Доступ к данным для этой группы.

  6. Выберите “Ограниченный доступ”.

  7. Выберите “Использовать сохраненный вопрос, чтобы создать собственное представление для этой таблицы”.

  8. Выберите сохраненный вопрос. Вопрос должен быть написан на SQL. Если вопрос содержит параметры, эти параметры должны быть обязательными (т.е. не могут быть необязательными).

  9. Необязательно: ограничить строки на основе пользовательских атрибутов.

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

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

Фильтрация строк с помощью пользовательских атрибутов при пользовательском ограниченном доступе

Вы можете настроить пользовательский ограниченный доступ, чтобы показывать разные строки разным пользователям в зависимости от значений их атрибутов пользователей. Например, вы можете отобразить вопрос “Отфильтрованные учетные записи” с фильтром “План” = “Базовый” для одной группы и фильтром “План” = “Премиум” для другой группы.

  1. Убедитесь, что вы выполнили все предварительные требования для пользовательского ограниченного доступа.

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

  3. Добавьте условие с пареметром WHERE в свой SQL-запрос, например {%raw%}WHERE plan = {{ plan_variable }} {% endraw%}.

  4. Сохраните вопрос SQL.

  5. Откройте Настройки администратора > Разрешения.

  6. Выберите группу и таблицу для своего пользовательского ограниченного доступа.

  7. Откройте раскрывающийся список в разделе Доступ к данным.

  8. Нажмите Изменить ограниченный доступ.

  9. Прокрутите вниз и задайте для Параметр или переменная имя параметра в сохраненном вопросе SQL (например, “Plan Variable”).

  10. Установите для Атрибута пользователя значение атрибута пользователя (например, ключ “План пользователя”, не значение “Базовый”).

  11. Нажмите Сохранить.

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

Как работает фильтрация строк при пользовательском ограниченном доступе

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

Стандартное предложение WHERE фильтрует таблицу, устанавливая для столбца фиксированное значение:

WHERE column_name = column_value

На шаге 2 настройки фильтрации строк выше вы добавите переменную SQL, чтобы предложение WHERE принимало динамическое значение. Тип переменной SQL должен быть строкой, числом или датой:

WHERE plan = {%raw%}{{ plan_variable }}{%endraw%}

В шагах 9–10 настройки фильтрации строк выше вы указываете GlarusBI связать переменную SQL plan_variable с атрибутом пользователя (например, “План пользователя”). GlarusBI будет использовать атрибут пользователя для поиска конкретного значения атрибута пользователя (например, “Базовый”), связанного с учетной записью пользователя в GlarusBI. Когда этот человек войдет в GlarusBI и обратится к таблице с ограниченным доступом, он увидит результат запроса, который отфильтрован по условию:

WHERE plan = "Базовый"

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

[[WHERE plan = {%raw%}{{ plan_variable }}{%endraw%}]]

Узнайте больше о параметрах SQL

Предотвращение конфликтов разрешений в режиме ограниченного доступа

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

Предположим, у вас есть настроен пользовательский ограниченный доступ, который скрывает столбец “Электронная почта” из таблицы “Учетные записи” для конкретной группы пользователей.

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

Одновременное наличие различающихся настроек ограниченного доступа

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

  • Если пользователь одновременно принадлежит к нескольким группам, имеющим различные ограничения доступа, то он получает доступ ко всем данным, к которым его имеет хотя бы одна из этих групп (условия доступа объединяются через логическое “ИЛИ”). В этом - отличие Glarus BI от базовой Metabase, где в такой ситуации пользователь полностью лишается доступа к таблице.

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

  • Возможна и допустима ситуация, когда количество атрибутов у пользователя и группы, куда он входит, различно. Предположим, что у пользователя есть атрибут А=А1, а у группы - атрибуты А=А2 и Б=Б2. Тогда с точки зрения ограничения доступа данный пользователь будет иметь атрибуты А=А1 (приоритет пользовательского значения над групповым) и Б=Б2 (унаследованный от группы).

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

Сохраненные вопросы SQL

В GlarusBI ограничения доступа распространяется и на результаты сохраненных вопросов SQL, в отличие от базовой Metabase, где сохраненные вопросы SQL всегда отображают данные из исходной таблицы, а не из таблицы с ограниченным доступом.

Публичный доступ

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

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

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

Дополнительная информация