# Безопасность

Механизм безопасности в QlikView может быть настроен двумя различными способами: он может быть либо встроен в скрипт документа QlikView, либо задан посредством использования QlikView Publisher.

## Аутентификация и авторизация

Аутентификация – это любой процесс, при котором подтверждается личность человека. QlikView может либо позволить ОС Windows провести аутентификацию, либо запросить идентификатор пользователя и пароль (отличные от идентификатора и пароль пользователя Windows), либо использовать лицензионный ключ QlikView как метод простой аутентификации.

Авторизация – это проверка наличия у уже идентифицированного человека прав на использование ресурса. QlikView может либо позволить ОС Windows провести авторизацию, либо провести авторизацию самостоятельно. В последнем случае в скрипт должна быть встроена таблица безопасности.

## Защита с помощью QlikView Publisher

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

Однако в сам файл защита не встроена, поэтому на загруженном файле защита отсутствует.

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

Для получения дополнительной информации см. документацию QlikView Publisher.

## Защита с помощью секции доступа в скрипте QlikView

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

Защита встроена в сам файл, поэтому даже загруженный файл в некоторой степени защищен. Однако, если потребности защиты высоки, следует предупреждать загрузку файлов и использование в автономном режиме. Файлы должны публиковаться только QlikView Server.

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

Документы QlikView можно сделать невидимыми в автономном режиме. Чтобы сделать невидимым документ пользователя, находящегося в автономном режиме, добавьте следующий атрибут в раздел сведений о документе с помощью QMC:

* Имя: Невидимый
* Значение: True

Вся информация, указанная ниже, относится к методу защиты, использующем Section Access в скрипте QlikView.

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

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

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

```

			Section Access;
			AuthorizationTable:
			Load ACCESS,  USERID,   REGION From ...;
   
			Section Application;
			Load ... From ...;
		
```

## Уровни доступа в секции доступа

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

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

Примечание к информацииПрава ADMIN применимы только к локальным документам. Доступ к документам, открытым на сервере, всегда выполняется с правами USER.

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

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

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

Системные поля Section Access

| Поле | Описание |
| --- | --- |
| ACCESS | Поле, определяющее, какой уровень доступа имеет соответствующий пользователь. |
| USERID | Поле, которое должно содержать принятый идентификатор пользователя. QlikView запросит идентификатор пользователя и сравнит его со значением в данном поле. Данный идентификатор пользователя не совпадает с идентификатором пользователя Windows. |
| USER.EMAIL | В настоящее время не поддерживается, в QlikView сопоставление будет выполняться только по знаку подстановки. |
| PASSWORD | Поле, которое должно содержать принятый пароль. QlikView запросит пароль и сравнит его со значением в данном поле. Данный пароль не совпадает с паролем Windows. |
| SERIAL | Поле, которое должно содержать число, соответствующее серийному номеру QlikView, или строку 'QLIKVIEW'.<br>Пример: 4900 2394 7113 7304<br>QlikView проверит серийный номер пользователя или строку 'QLIKVIEW' и сравнит его со значением в данном поле. |
| NTNAME | Поле, которое должно содержать строку, соответствующую имени пользователя или группы домена NT Windows. Если используется другая система аутентификации, она должна содержать имя аутентифицированного пользователя.<br>QlikView выдаст сведения о пользователе из ОС и сравнит ее со значением в данном поле. |
| NTDOMAINSID | Поле, которое должно содержать строку, соответствующую SID домена Windows NT.<br>Пример: S-1-5-21-125976590-4672381061092489882<br>QlikView выдаст сведения о пользователе из ОС и сравнит их со значением в данном поле. |
| NTSID | Поле, которое должно содержать SID Windows NT.<br>Пример: S-15-21-125976590-467238106-1092489882-1378<br>QlikView выдаст сведения о пользователе из ОС и сравнит их со значением в данном поле. |
| OMIT | Поле, которое должно содержать поле, которое должно быть опущено для конкретного пользователя. Могут использоваться подстановочные знаки, и поле может быть пустым. Простой способ сделать это — использовать подполе.<br><br>Примечание к информацииOMIT не следует применять к ключевым полям, поскольку это приведет к изменению внутренней структуры данных. В результате могут появиться логические островки и несогласованности в вычислениях. |

QlikView сравнит серийный номер QlikView с полем SERIAL, имя пользователя и группы Windows NT с NTNAME, SID домена Windows NT с NTDOMAINSID и Windows NT SID c NTSID. Далее он запросит идентификатор пользователя и пароль и сравнит их с полями USERID и PASSWORD.

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

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

При выполнении процедуры входа QlikView сначала проверяет SERIAL, NTNAME, NTDOMAINSID и NTSID, для проверки, достаточно ли этой информации для предоставления пользователю доступа к документу. В случае предоставления доступа QlikView откроет документ, не запрашивая идентификатор пользователя и пароль.

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

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

[Upper — скрипт и функция диаграммы](https://help.qlik.com/ru-RU/qlikview/September2026/Subsystems/Client/Content/QV_QlikView/Scripting/StringFunctions/Upper.htm)

Однако для идентификатора пользователя и пароля, вводимых конечным пользователем, открывающим документы QlikView, учитывается регистр.

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

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

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

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

Проверяется только серийный номер. Определенный компьютер получает доступ ADMIN. Все остальные получают доступ USER. Имейте в виду, что с помощью символа звездочки можно указать «любой серийный номер».

Пример 1.

| ACCESS | SERIAL |
| --- | --- |
| ADMIN | 4900 2394 7113 7304 |
| USER | \* |

Администратор и сервер, на котором QlikView выполняется как пакетное задание, получают доступ ADMIN. Все остальные участники домена получают доступ USER при вводе «USER» в качестве идентификатора пользователя и пароля.

Пример 2.

| ACCESS | SERIAL | NTDOMAINSID | USERID | PASSWORD |
| --- | --- | --- | --- | --- |
| ADMIN | \* | S-1-5-21-125976590-467238106-1092489882 | ADMIN | ADMIN |
| ADMIN | 4900 2394 7113 7304 | \* | \* | \* |
| USER | \* | S-1-5-21-125976590-467238106-1092489882 | USER | USER |

## Смешанные среды

Если вы планируете использовать одну и ту же таблицу авторизации как в QlikView, так и в Qlik Cloud, следует учитывать несколько моментов:

• USERID имеет разные значения в QlikView и Qlik Cloud и в случае использования может вызвать проблемы с безопасностью. Используйте вместо него NTNAME или объедините его с SERIAL, как показано ниже.

• GROUP и поля, начинающиеся с «USER.», такие как «USER.NAME», «USER.EMAIL» и т. д., являются (или будут являться) полями аутентификации в Qlik Sense Enterprise SaaS. При использовании этих полей в Section Access вам может быть отказано в доступе в Qlik Cloud.

• PASSWORD, NTSID и NTDOMAINSID нельзя использовать в Qlik Cloud. Доступ будет запрещен, если не будет использоваться подстановочный знак.

• SERIAL нельзя использовать для проверки номера лицензии в Qlik Cloud. Впрочем, если это поле содержит строку QLIKCLOUD или QLIKVIEW, доступ может быть предоставлен. Это означает, что можно использовать следующую таблицу авторизации, где строка 1 предоставляет доступ в QlikView (но не в Qlik Cloud), а строка 2 предоставляет доступ в Qlik Cloud (но не в QlikView).

| Линия | SERIAL | USERID | Комментарий |
| --- | --- | --- | --- |
| 1 | 4600 0123 4567 8901 | \* | Предоставляет доступ к корректному номеру лицензии в QlikView. |
| 2 | QLIKCLOUD | John Doe | Предоставляет доступ соответствующему пользователю в Qlik Sense Enterprise SaaS. |

| Линия | SERIAL | USERID | Комментарий |
| --- | --- | --- | --- |
| 1 | QLIKVIEW | \* | Предоставляет доступ к QlikView. |
| 2 | QLIKCLOUD | John Doe | Предоставляет доступ соответствующему пользователю в Qlik Sense Enterprise SaaS. |

## Ограничения функций QlikView

Элементы управления на странице Свойства документа: Безопасность и на странице Свойства листа: Безопасность позволяют запретить доступ к определенным пунктам меню и запретить изменения в макете. Если эти параметры будут использоваться в качестве действительно защитной меры, важно, чтобы пользователи вошли в систему как USER. Все пользователи, вошедшие как ADMIN, могут изменять параметры безопасности в любое время.

У пользователя, открывшего документ с правами USER, отсутствуют страницы Безопасность в диалоговых окнах «Свойства».

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

QlikView и сервер QlikView поддерживают функцию, позволяющую скрыть некоторые данные в документе от пользователя на основе входа в секцию доступа.

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

Во-вторых, записи (строки) можно скрыть путем связывания данных Section Access с реальными данными: выбор отображаемых/исключенных значений контролируется наличием одного или нескольких полей с общими именами в разделе access и разделе application. После входа пользователя в систему QlikView попытается скопировать выборки в полях в секции доступа в любые поля в секции приложения с точно такими же именами (имена полей должны быть в ВЕРХНЕМ РЕГИСТРЕ). После создания выборок QlikView будет постоянно скрывать все данные, исключенные этими выборками, от пользователя.

Для применения этой процедуры должен быть установлен параметр Начальное сокращение количества данных с учетом Section Access на странице Свойства документа: Открытие. При использовании этой функции в документах, которые должны распространяться другими способами, а не через QlikView Server, необходимо установить параметр Запрет бинарной загрузки на этой же странице диалогового окна «Свойства документа» для обеспечения защиты данных.

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

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

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

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

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

Пользователь A может просматривать все поля, но только тех записей, которые связаны с REDUCTION=1.

Пользователь B может просматривать все поля кроме NUM, и только тех записей, которые связаны с REDUCTION=2.

Пользователь C может просматривать все поля кроме ALPHA, и только записи, связанные с REDUCTION=3.

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

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

## Шифрование

Связь между сервером QlikView и клиентом QlikView для Windows шифруется. Однако при использовании клиента AJAX связь не шифруется.

Кроме того, все документы QlikView шифруются, что делает информацию недоступной для средств просмотра, отладчиков и.д.

Вы также можете зашифровать конфиденциальные данные в файлах QVD с помощью предоставленных клиентом пар ключей, что позволяет контролировать, кто получает доступ к вашим данным. См. [Шифрование QVD](https://help.qlik.com/en-US/qlikview/September2026/Subsystems/Server/Content/QV_Server/QlikView-Server/QVSRM_EncryptionCertificates.htm) (только английский язык).

[Свойства документа: Безопасность](https://help.qlik.com/ru-RU/qlikview/September2026/Subsystems/Client/Content/QV_QlikView/Document_Properties_Security.htm)

[Свойства документа: Безопасность](https://help.qlik.com/ru-RU/qlikview/September2026/Subsystems/Client/Content/QV_QlikView/Document_Properties_Security.htm)

[Свойства листа: Безопасность](https://help.qlik.com/ru-RU/qlikview/September2026/Subsystems/Client/Content/QV_QlikView/Sheet%20Properties_Security.htm)