Управление безопасностью с помощью доступа к секции

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

Примечание: Группы пользователей не поддерживаются в Kubernetes.

Защита встроена в сам файл, что означает также защиту загруженного файла в некоторой степени. Тем не менее, если требования к безопасности высоки, нельзя допускать загрузки и использования файлов в автономном режиме, файлы должны публиковаться только сервером Qlik Sense. Так как все данные находятся в одном файле, размер данного файла может быть очень большим.

Предупреждение:

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

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

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

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

Разделы скрипта

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

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

Example:  

Section Access; LOAD * inline [ ACCESS, USERID USER, User_ID ]; Section Application; LOAD... ... from... ...

Системные поля доступа к секции

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

ACCESS

Определяет, какой уровень доступа должен иметь соответствующий пользователь.

Доступ к приложениям Qlik Sense может быть авторизован для указанных пользователей или групп пользователей. В таблице безопасности пользователям могут быть назначены уровни доступа ADMIN или USER. Если уровень доступа не назначен, пользователь не сможет открыть приложение.

Пользователь с правами ADMIN имеет доступ ко всем данным в приложении. Пользователь с правами USER имеет доступ только к данным, определенным в таблице безопасности.

Если в сценарии создания приложения On-demand (ODAG) в приложении шаблона используется доступ к секции, пользователя INTERNAL\SA_API необходимо включить в таблицу доступа к секции в качестве ADMIN. Пример.

Section Access; LOAD * inline [ ACCESS, USERID ADMIN, INTERNAL\SA_API ];

USERID

Содержит строку, соответствующую имени пользователя Qlik Sense. Программа Qlik Sense выдаст сведения о входе в систему из прокси-сервера и сравнит ее со значением в данном поле.

GROUP

Содержит строку, соответствующую группе в программе Qlik Sense. Программа Qlik Sense разрешит вопрос с пользователем, отсылаемым прокси-сервером, в отношении этой группы.

Примечание: Если при использовании групп для сокращения количества данных необходимо использовать Qlik Management Console, это, как и прежде, должен выполнять пользователь учетной записи INTERNAL\SA_SCHEDULER.

OMIT

Содержит имя поля, которое должно быть опущено для этого конкретного пользователя. Могут использоваться подстановочные знаки, и поле может быть пустым. Простой способ сделать это — использовать подполе.

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

Программа Qlik Sense сравнит пользователя, отсылаемого прокси-сервером, с UserID и разрешит вопрос с пользователем в отношении групп в таблице. Если пользователь принадлежит группе, к которой доступ разрешен, или пользователь совпадет с идентификатором, они получат доступ к приложению.

Примечание:

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

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

Поскольку та же внутренняя логика, являющаяся отличительной особенностью Qlik Sense, также используется и в секции доступа, поля безопасности могут быть помещены в различные таблицы. Все поля, перечисленные в операторах LOAD или SELECT в доступе к секции, должны быть написаны в ВЕРХНЕМ РЕГИСТРЕ. Имя любого поля с буквами в нижнем регистре в базе данных должно быть преобразовано в верхний регистр с помощью функции Upper до чтения поля с помощью оператора LOAD или SELECT.

Для получения дополнительной информации см. Upper — функция скриптa и диаграммы.

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

Примечание: При загрузке данных из файла QVD использование функции upper приведет к снижению скорости загрузки.
Примечание: Если доступ к секции активирован, нельзя использовать имена системных полей доступа к секции, перечисленные здесь, в качестве имен полей в вашей модели данных.

Example:

В этом примере открыть документ могут только пользователи из финансовой группы.

Доступ к документу
Доступ Владелец
ПОЛЬЗОВАТЕЛЬ Финансовый

Динамическое сокращение данных

Программа Qlik Sense поддерживает функцию динамического сокращения данных, позволяющую скрыть некоторые данные в приложении от пользователя на основе логина доступа к секции:

  • Поля (столбцы) можно скрыть с помощью системного поля OMIT.
  • Записи (строки) можно скрыть путем привязки данных доступа к секции к реальным данным: выбор значений для отображения или исключения управляется с помощью одного или нескольких полей с общими именами в доступе к секции и приложении секции. После входа пользователя в систему программа Qlik Sense попытается сопоставить выборки в полях доступа к секции с любыми полями приложения секции с точно такими же именами (имена полей должны использоваться в ВЕРХНЕМ РЕГИСТРЕ). После создания выборок программа Qlik Sense будет постоянно скрывать все данные, исключенные этими выборками, от пользователя.
Примечание: Имена всех полей, используемых в описанной выше передаче, и все значения в этих полях должны быть в верхнем регистре, поскольку все имена и значения полей по умолчанию преобразуются в верхний регистр в доступе к секции.
Примечание: Включение перезагрузки скрипта в задании Qlik Management Console должен выполнять пользователь учетной записи INTERNAL\SA_SCHEDULER с правами доступа ADMIN.

Example: Сокращение количества данных на основе идентификатора пользователя

Section Access; LOAD * inline [ ACCESS, USERID, REDUCTION, OMIT USER, AD_DOMAIN\ADMIN, *, USER, AD_DOMAIN\A, 1, USER, AD_DOMAIN\B, 2, NUM USER, AD_DOMAIN\C, 3, ALPHA ADMIN, INTERNAL\SA_SCHEDULER, *, ]; section application; T1: LOAD *, NUM AS REDUCTION; LOAD Chr( RecNo()+ord('A')-1) AS ALPHA, RecNo() AS NUM AUTOGENERATE 3;

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

Поле OMIT в доступе к секции определяет поля, которые должны быть скрыты от пользователя.

Будет получен следующий результат:

  • Пользователь ADMIN может увидеть все поля и только те записи, которые другие пользователи могут увидеть в данном примере, когда для поля REDUCTION указано значение 1, 2 или 3.
  • Пользователь A может просматривать все поля, но только тех записей, которые связаны с REDUCTION=1.
  • Пользователь B может просматривать все поля, кроме NUM, и только тех записей, которые связаны с REDUCTION=2.
  • Пользователь C может просматривать все поля, кроме ALPHA, и только тех записей, которые связаны с REDUCTION=3.

Example: Сокращение количества данных на основе групп пользователей

Section Access; LOAD * inline [ ACCESS, USERID, GROUP, REDUCTION, OMIT USER, *, ADMIN, *, USER, *, A, 1, USER, *, B, 2, NUM USER, *, C, 3, ALPHA USER, *, GROUP1, 3, ADMIN, INTERNAL\SA_SCHEDULER, *, *, ]; section application; T1: LOAD *, NUM AS REDUCTION; LOAD Chr( RecNo()+ord('A')-1) AS ALPHA, RecNo() AS NUM AUTOGENERATE 3;

Будет получен следующий результат:

  • Пользователи, принадлежащие к группе ADMIN, могут просматривать все данные и все поля.
  • Пользователи, принадлежащие к группе A, могут просматривать данные всех полей, связанные с REDUCTION=1.
  • Пользователи, принадлежащие к группе B, могут просматривать данные, связанные с REDUCTION=2, во всех полях, кроме поля NUM.
  • Пользователи, принадлежащие к группе C, могут просматривать данные, связанные с REDUCTION=3, во всех полях, кроме поля ALPHA.
  • Пользователи, принадлежащие к группе GROUP1, могут просматривать данные всех полей, связанные с REDUCTION=3.
  • Пользователь INTERNAL\SA_SCHEDULER не принадлежит ни к одной из групп, но может просматривать данные всех полей.

    Примечание:

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

Унаследованные ограничения доступа

Примечание: Данная функция недоступна в Kubernetes.

Загрузка двоичного файла вызовет наследование ограничений доступа новым приложением Qlik Sense.