Управление безопасностью с помощью доступа к разделу
Для управления безопасностью можно использовать доступ к секции в скрипте загрузки данных. Этим способом можно использовать одиночный файл для хранения данных для нескольких пользователей или групп пользователей. Программа Qlik Sense использует информацию доступа к секции для проверки подлинности и авторизации, а также динамически сокращает данные, чтобы пользователь мог видеть только свои данные.
Защита встроена в сам файл, что означает также защиту загруженного файла в некоторой степени. Тем не менее, если требования к безопасности высоки, нельзя допускать загрузки и использования файлов в автономном режиме, файлы должны публиковаться только сервером Qlik Sense. Так как все данные находятся в одном файле, размер данного файла может быть очень большим.
Перед тем, как применить элементы управления доступом к секции, необходимо опубликовать приложение. Новые и измененные скрипты доступа к секции не применяются после перезагрузки приложения.
Во избежание доступа к данным с ограниченным доступом после публикации приложения удалите все прикрепленные файлы с параметрами доступа к секции.
Публикуемое приложение включает прикрепленные файлы. При копировании публикуемого приложения прикрепленные файлы включаются в копию. Однако если к прикрепленным файлам данных были применены ограничения доступа к секции, при копировании прикрепленных файлов параметры доступа к секции не сохраняются, поэтому пользователи скопированного приложения могут видеть все данные прикрепленных файлов.
Не следует назначать цвета значениям основного измерения, если используется доступ к секции или обрабатываются конфиденциальные данные, так как в этом случае значения можно определить по настройкам цвета.
Разделы скрипта
Управление доступом осуществляется с помощью одной или нескольких таблиц безопасности, загруженных так же, как программа Qlik Sense обычно загружает данные. Таким образом, можно хранить эти таблицы в обычной базе данных. Операторы скрипта, управляющие таблицами безопасности, даны в секции доступа, которая в скрипте запускается оператором Section Access.
Если в скрипте определена секция доступа, то часть скрипта, загружающая данные приложения, должна быть помещена в другую секцию, запускаемую оператором Section Application.
Example:
Системные поля секции доступа
Уровни доступа назначаются пользователям в одной или нескольких таблицах, загруженных в рамках доступа к секции. Эти таблицы могут содержать различные пользовательские системные поля (как правило, USERID) и поле, определяющее уровень доступа (ACCESS). Все системные поля доступа к секции используются для проверки подлинности или авторизации. Ниже описан полный набор системных полей доступа к секции.
ACCESS
Определяет, какой уровень доступа должен иметь соответствующий пользователь.
Доступ к приложениям Qlik Sense может быть авторизован для указанных пользователей или групп пользователей. В таблице безопасности пользователям могут быть назначены уровни доступа ADMIN или USER. Если уровень доступа не назначен, пользователь не сможет открыть приложение.
Пользователь с правами ADMIN имеет доступ ко всем данным в приложении. Пользователь с правами USER имеет доступ только к данным, определенным в таблице безопасности.
Если в сценарии создания приложения On-demand (ODAG) в приложении шаблона используется доступ к секции, пользователя INTERNAL\SA_API необходимо включить в таблицу доступа к секции в качестве ADMIN. Пример.
USERID
Содержит строку, соответствующую имени пользователя Qlik Sense. Программа Qlik Sense выдаст сведения о входе в систему из прокси-сервера и сравнит ее со значением в данном поле.
GROUP
Содержит строку, соответствующую группе в программе Qlik Sense. Программа Qlik Sense разрешит вопрос с пользователем, отсылаемым прокси-сервером, в отношении этой группы.
OMIT
Содержит имя поля, которое должно быть опущено для этого конкретного пользователя. Могут использоваться подстановочные знаки, и поле может быть пустым. Простой способ сделать это — использовать подполе.
Программа Qlik Sense сравнит пользователя, отсылаемого прокси-сервером, с UserID и разрешит вопрос с пользователем в отношении групп в таблице. Если пользователь принадлежит группе, к которой доступ разрешен, или пользователь совпадет с идентификатором, они получат доступ к приложению.
Поскольку та же внутренняя логика, являющаяся отличительной особенностью Qlik Sense, также используется и в секции доступа, поля безопасности могут быть помещены в различные таблицы. Все поля, перечисленные в операторах LOAD или SELECT в доступе к секции, должны быть написаны в ВЕРХНЕМ РЕГИСТРЕ. Имя любого поля с буквами в нижнем регистре в базе данных должно быть преобразовано в верхний регистр с помощью функции Upper до чтения поля с помощью оператора LOAD или SELECT.
Для получения дополнительной информации см. Upper — функция скриптa и диаграммы.
Знак подстановки, *, интерпретируется как все (перечисленные) значения этого поля, т. е. значение, указанное в каком-либо другом месте в этой таблице. При использовании в одном из системных полей (USERID, GROUP) в таблице, загруженной в секцию доступа скрипта, этот символ интерпретируется как все (также и неперечисленные) возможные значения этого поля.
Example:
В этом примере открыть документ могут только пользователи из финансовой группы.
Доступ | Владелец |
---|---|
ПОЛЬЗОВАТЕЛЬ | Финансовый |
Динамическое сокращение данных
Программа Qlik Sense поддерживает функцию динамического сокращения данных, позволяющую скрыть некоторые данные в приложении от пользователя на основе логина доступа к секции:
- Поля (столбцы) можно скрыть с помощью системного поля OMIT.
- Записи (строки) можно скрыть путем привязки данных доступа к секции к реальным данным: выбор значений для отображения или исключения управляется с помощью одного или нескольких полей с общими именами в доступе к секции и приложении секции. После входа пользователя в систему программа Qlik Sense попытается сопоставить выборки в полях доступа к секции с любыми полями приложения секции с точно такими же именами (имена полей должны использоваться в ВЕРХНЕМ РЕГИСТРЕ). После создания выборок программа Qlik Sense будет постоянно скрывать все данные, исключенные этими выборками, от пользователя.
Example: Сокращение количества данных на основе идентификатора пользователя
Поле REDUCTION (в верхнем регистре) теперь присутствует и в доступе к секции, и в приложении секции (все значения полей также должны быть в верхнем регистре). Обычно два поля будут разделены и полностью различны, но если используется доступ к секции, поля будут связаны, а количество записей, отображаемых для пользователя, сокращено.
Поле OMIT в доступе к секции определяет поля, которые должны быть скрыты от пользователя.
Будет получен следующий результат:
- Пользователь ADMIN может увидеть все поля и только те записи, которые другие пользователи могут увидеть в данном примере, когда для поля REDUCTION указано значение 1, 2 или 3.
- Пользователь A может просматривать все поля, но только тех записей, которые связаны с REDUCTION=1.
- Пользователь B может просматривать все поля, кроме NUM, и только тех записей, которые связаны с REDUCTION=2.
- Пользователь C может просматривать все поля, кроме ALPHA, и только тех записей, которые связаны с REDUCTION=3.
Example: Сокращение количества данных на основе групп пользователей
Будет получен следующий результат:
- Пользователи, принадлежащие к группе ADMIN, могут просматривать все данные и все поля.
- Пользователи, принадлежащие к группе A, могут просматривать данные всех полей, связанные с REDUCTION=1.
- Пользователи, принадлежащие к группе B, могут просматривать данные, связанные с REDUCTION=2, во всех полях, кроме поля NUM.
- Пользователи, принадлежащие к группе C, могут просматривать данные, связанные с REDUCTION=3, во всех полях, кроме поля ALPHA.
- Пользователи, принадлежащие к группе GROUP1, могут просматривать данные всех полей, связанные с REDUCTION=3.
-
Пользователь INTERNAL\SA_SCHEDULER не принадлежит ни к одной из групп, но может просматривать данные всех полей.
Примечание к информацииЗнак подстановки * в данной строке относится только ко всем значениям, входящим в таблицу доступа к секции. Если в приложении секции существуют значения, недоступные в поле REDUCTION доступа к секции, эти значения будут сокращены.
Унаследованные ограничения доступа
Загрузка двоичного файла вызовет наследование ограничений доступа новым приложением Qlik Sense.