Управление безопасностью с помощью доступа к разделу
Можно использовать доступ к секции в скрипте загрузки данных для управления доступом к данным на уровне строк. Этим способом можно использовать один файл для хранения данных для пользователей или групп пользователей. Qlik Sense использует информацию в доступе к секции для авторизации на уровне строк и динамически сокращает данные, чтобы пользователь мог просматривать только данные, на которые у него есть право.
Защита встроена в сам файл, что означает также защиту загруженного файла в некоторой степени. Тем не менее, если требования к безопасности высоки, нельзя допускать загрузки и использования файлов в автономном режиме. Файлы должны публиковаться только сервером Qlik Sense. Так как все данные находятся в одном файле, размер данного файла может быть очень большим.
Перед тем, как применить элементы управления доступом к секции, необходимо опубликовать приложение. Новые и измененные скрипты доступа к секции не применяются после перезагрузки приложения.
Разделы скрипта
Управление доступом на уровне строки осуществляется с помощью одной или нескольких таблиц безопасности, загруженных так же, как обычно загружаются данные. Таким образом, эти таблицы можно хранить в стандартной базе данных или в электронной таблице. Операторы скрипта, управляющие таблицами безопасности, даны в секции авторизации, которая в скрипте запускается оператором Section Access.
Если в скрипте определена секция авторизации, то часть скрипта, загружающая данные приложения, должна быть помещена в другую секцию, запускаемую оператором Section Application.
Example:
Section Access;
AuthorizationTable:
Load ACCESS, USERID, REGION From ... ;
Section Application;
Load ... From ... ;
Системные поля секции доступа
Уровни доступа назначаются пользователям в одной или нескольких таблицах, загруженных в рамках доступа к секции. Эти таблицы могут содержать различные пользовательские системные поля (как правило, USERID) и поле, определяющее уровень доступа (ACCESS). Все системные поля доступа к секции используются для проверки подлинности или авторизации. Ниже описан полный набор системных полей доступа к секции.
ACCESS
Определяет, какой уровень доступа должен иметь соответствующий пользователь.
Доступ к приложениям Qlik Sense может быть авторизован для указанных пользователей или групп пользователей. В таблице безопасности пользователям могут быть назначены уровни доступа ADMIN или USER. Если уровень доступа не назначен, пользователь не сможет открыть приложение.
Пользователь с правами ADMIN имеет доступ ко всем данным в приложении. Пользователь с правами USER имеет доступ только к данным, определенным в таблице безопасности.
Если в сценарии создания приложения On-demand (ODAG) в приложении шаблона используется доступ к секции, пользователя INTERNAL\SA_API необходимо включить в таблицу доступа к секции в качестве ADMIN. Пример.
NTNAME
Поле, в котором должна содержаться строка, соответствующая имени пользователя или имени группы домена Windows NT. Если применяется другая система проверки подлинности, она должна содержать имя аутентифицируемого пользователя.
Программа Qlik Sense получит сведения о входе в систему из ОС и сравнит ее со значением в данном поле.
USERID
Содержит строку, соответствующую имени пользователя Qlik Sense. Программа Qlik Sense получит сведения о входе в систему из прокси-сервера и сравнит ее со значением в данном поле.
USER.EMAIL
В настоящее время не поддерживается, будет в Qlik Sense совпадать только с подстановочным знаком.
GROUP
Содержит строку, соответствующую группе в программе Qlik Sense. Программа Qlik Sense разрешит вопрос с пользователем, отсылаемым прокси-сервером, в отношении этой группы.
SERIAL
Содержит строку, соответствующую платформе. Если поле содержит строку ‘QLIKSENSE’ или подстановочный знак ‘*’, доступ может быть предоставлен в зависимости от других полей в таблице авторизации.
OMIT
Содержит имя поля, которое должно быть опущено для этого конкретного пользователя. Могут использоваться подстановочные знаки, и поле может быть пустым. Простой способ сделать это — использовать подполе.
Qlik Sense сравнивает пользователя с UserID и разрешает его с помощью групп в таблице. Если пользователь принадлежит группе, к которой доступ разрешен, или пользователь совпадет с идентификатором, он получает доступ к приложению.
Если вы заблокировали себе доступ к приложению с помощью параметров доступа к секции, можно открыть приложение без данных и отредактировать секцию доступа в скрипте загрузки данных. Для этого требуется доступ для редактирования и перезагрузки скрипта загрузки данных.
Для получения дополнительной информации см. Открытие приложения без данных.
Поскольку та же внутренняя логика, являющаяся отличительной особенностью Qlik Sense, также используется и в секции доступа, поля безопасности могут быть помещены в различные таблицы. Все поля, перечисленные в операторах LOAD или SELECT в доступе к секции, должны быть написаны в верхнем регистре. Имя любого поля с буквами в нижнем регистре в базе данных должно быть преобразовано в верхний регистр с помощью функции Upper до чтения поля с помощью оператора LOAD или SELECT.
Для получения дополнительной информации см. Upper — функция скриптa и диаграммы.
Знак подстановки, *, интерпретируется как все (перечисленные) значения этого поля, т. е. значение, указанное в каком-либо другом месте в этой таблице. При использовании в одном из системных полей (USERID, GROUP) в таблице, загруженной в секцию доступа скрипта, этот символ интерпретируется как все (также и неперечисленные) возможные значения этого поля.
Example:
В этом примере открыть документ могут только пользователи из группы Finance.
Доступ | Группа |
---|---|
USER | Finance |
Динамическое сокращение данных
Программа 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.