Что нельзя делать при работе в тонком клиенте qlikview
QlikView. Создадим свое первое приложение?…
В этой статье я хочу описать основы использования продукта QlikView от компании QlikTech, предназначенный для бизнес-аналитики (Business intelligence). Осторожно, много спойлеров.
Немного предисловия
QlikTech — компания-разработчик программного обеспечения для систем Business Intelligence со штаб-квартирой в Радноре. Основана в 1993 году в Швеции.
QlikView — BI-платформа с ассоциативным поиском в оперативной памяти со встроенными средствами ETL.
Сокращения, определения, информация
Собственно, зачем мы здесь? — Для того, чтобы создать ваше первое приложение для простого анализа продаж
Что нам для этого потребуется?
1. QlikView.
2. Данные, их я создал рэндомно, используя QV.
3. 25-30 минут времени.
Ссылки
1. QlikView Personal Edition (ver. 11.20 SR5 ) x86 x64 Win8andUp — Бесплатная версия, доступная для всех, без ограничений использования под одним пользователем на одном компьютере
2. Архив данных на Mega
Загрузка данных
Всё что нам сегодня понадобится для работы — это кнопка — , потому что мы будем загружать данные из Excel-файлов.
Давайте для начала создадим календарь, наберите код:
(полный скрипт будет под катом в конце статьи)
Не забывайте сохранять приложение каждый раз перед загрузкой данных, иначе придется набирать весь код заново.
Включить авто сохранение можно в настройках.
Дизайн
Давайте полученный результат оставим без изменений
Немного выправим таблицу и получим нечто похожее на это
Продолжим преобразования, т.к. сейчас ничего не понятно.
Заключение
Собственно, мне хотелось показать сообществу принцип работы и построения приложений в QV на пальцах.
Я сам сейчас занимаюсь более серьезными проектами на QV в частности построением отчетности на 500 млн. строк данных.
Если хабраобществу будет интересно продолжение, то я его с удовольствием предоставлю.
Welcome всех в каменты.
SET ThousandSep=’ ‘;
SET DecimalSep=’,’;
SET MoneyThousandSep=’ ‘;
SET MoneyDecimalSep=’,’;
SET MoneyFormat=’# ##0,00 р.;-# ##0,00 р.’;
SET TimeFormat=’h:mm:ss’;
SET DateFormat=’DD.MM.YYYY’;
SET TimestampFormat=’DD.MM.YYYY h:mm:ss[.fff]’;
SET MonthNames=’янв; фев; мар; апр; май; июн; июл; авг; сен; окт; ноя; дек’;
SET DayNames=’Пн; Вт; Ср; Чт; Пт; Сб; Вс’;
// пустая таблица календаря
Календарь: /* Название нашей таблицы*/
load * Inline /* Загружаем данные построчно при этом данные мы укажем явно */
[Дата, Месяц, Год, День]; /* Название полей данных которые будут в нашей таблице */
// создаем календарь от текущей даты минус 800 дней
Let ТекущаяДата = Num(Today(1)); /* Определяем переменную ТекущаяДата —
как сегодняшнее число в цифровом представлении*/
Let Период = 800; /* я взял произвольное число, вы можете использовать любое */
Next i; /* продолжаем цикл */
Номенклатура:
LOAD НаименованиеТовара,
Родитель,
RowNo() as ID
FROM
номенклатура.xlsx
(ooxml, embedded labels, table is Лист1);
Движения:
LOAD ID,
Дата,
Количество,
Сумма
FROM
Движения.csv
(txt, utf8, embedded labels, delimiter is ‘,’, msq);
Советы и рекомендации по QlikView
В этой статье мы рассмотрим следующие ключевые темы:
Несколько советов по написанию кода
Есть несколько способов улучшить QlikView. Есть определенные техники, или просто полезные вещи, которые нужно знать или делать. Вот несколько наших любимых.
Не меняйте свой стиль написания кода
На самом деле это не просто аккуратный стиль разработки. Рекомендуем вам всегда применять один и тот же подход в именовании функций, не важно, какой стиль вы используете (если только у вас нет стандартов, которые требуют определенного стиля). Например, вы можете использовать MonthStart(), monthstart() или MONTHSTART(). Все они работают одинаково, но для единообразия выберите один принцип и придерживайтесь его.
Используйте MUST_INCLUDE вместо INCLUDE
Эту функцию вообще не документировали до позднего релиза v11.2; однако она очень полезна. Если вы используете INCLUDE, а файл, который вы пытаетесь включить, не удается найти, QlikView проигнорирует его. Последствия этого непредсказуемы, от странного поведения до полного отказа скрипта. Если вы используете MUST_INCLUDE, QlikView будет жаловаться на отсутствие включенного файла, и вы можете решить проблему, прежде чем она потянет за собой другие проблемы. На самом деле кажется странным, что INCLUDE этого не делает, но у Qlik, наверное, есть на то свои причины. Тем не менее, лучше всегда использовать MUST_INCLUDE, чтобы сэкономить время и силы.
Вставляйте номера версий в свой код
В QlikView нет системы управления версиями как таковой, и нам еще предстоит увидеть такую, которая бы эффективно работала с QlikView. Так что со стороны разработчика потребуются некоторые усилия. Разработайте систему управления версиями и всегда вставляйте номер версии в переменную, которая отображается где-нибудь в приложении. Обновляете ли вы этот номер каждый раз при внесении изменений, или нет, в любом случае убедитесь, что он актуален для текущего релиза и связан с вашими собственными журналами выпуска.
Удивительные источники данных
QlikView будет считывать таблицы базы данных, электронные таблицы, файлы XML и текстовые файлы, а вы знали, что он также может получать данные прямо из веб-страницы? Если вам нужны данные из Интернета, создавать собственную их версию не нужно. Просто достаньте их с веб-страницы. Как насчет ISO кодов стран? Вот вам пример.
Откройте скрипт и щелкните Web files… (Веб-файлы…) под Data from Files (Данные из файлов) в правой части нижней части экрана. Это откроет диалог File Wizard: Source (Мастер работы с файлами: источник), как показано на следующем скриншоте.
Введите URL-адрес, по которому находится таблица с данными:
Затем нажмите Next (Далее) и в этом случае выберите @2 в Tables (Таблицы), как показано на следующем скриншоте:
Нажмите Finish (Завершить), и ваш скрипт будет выглядеть примерно так:
Примерно за 30 секунд у вас появится отличная таблица соответствия; потребуется еще несколько секунд, чтобы подчистить ее для ваших целей. Одно небольшое предостережение: веб-страницы могут менять адрес, контент и структуру, поэтому стоит проводить проверку, если вы считаете, что возможны какие-либо изменения.
Включаемые файлы
Мы уже говорили, что вам следует использовать MUST_INCLUDE, а не INCLUDE, но нас всегда удивлял тот факт, что многие разработчики вообще никогда не используют включаемые файлы. Если один и тот же код нужно использовать более чем в одном месте, он должен быть во включаемом файле.
Предположим, у вас есть несколько документов, которые используют файл C:QlikFilesFinanceBudgets.xlsx, и имя папки жестко запрограммировано в каждом из них. Как только файл перенесут в другое место, вам придется вносить целый ряд изменений, и можно легко пропустить изменение документа, потому что вы можете даже не знать, что там используется файл.
Решение в этом случае простое, очень эффективное и гарантированно избавит вас от многих сбоев перезагрузки.
Вместо того, чтобы прописывать полное имя папки, создайте что-то вроде этого:
Поместите строку во включаемый файл, например, FolderNames.inc.
Затем введите это в каждый скрипт следующим образом:
Теперь, если вы хотите обратиться к своей таблице Budgets.xlsx, введите следующий код:
Теперь, если путь к папке меняется, вам нужно изменить только одну строку кода во включаемом файле, и все будет работать нормально, если вы реализуете включаемые файлы во всех своих документах.
Обратите внимание, что это работает и для папок, которые содержат файлы QVD и так далее. Вы также можете использовать эту технику для включения LOAD из QVD или электронных таблиц, потому что вы всегда должны стремиться получить только одну версию истины.
Журнал изменений
Для этого убедитесь, что у вас есть область комментариев прямо в верхней части вашего скрипта, она выглядит примерно так:
Убедитесь, что вы обновляете ее каждый раз, когда вносите изменения. Вы можете сделать её ещё полезнее, объяснив, почему было внесено изменение, а не только то, что именно изменилось. Вы также должны прокомментировать выражения в диаграммах при их изменении.
QlikView и Qlik Sense: обеспечение безопасности и разграничение прав доступа
Системы Qlik разработаны для использования на корпоративном уровне и поэтому содержит все необходимые элементы информационной безопасности, которая удовлетворяет даже банковские структуры, при использовании серверной компоненты системы.
Системы Qlik (QlikView и Qlik Sense) поддерживает стандарты безопасности, специально разработанные для защиты миллиардов записей и десятков тысяч пользователей, которые она способна обслуживать. Многофункциональная и простая в управлении консоль безопасности позволяет контролировать доступ пользователей к данным и метрикам, к средствам и результатам анализа. Вы можете применять групповые, ролевые и индивидуальные пользовательские политики ограничения доступа на уровне от отдельных документов вплоть до конкретных строк и значений. BI-платформа QlikView поддерживает стандартные службы каталогов, такие как Microsoft Active Directory. Конфигурируемая служба каталогов позволяет интегрировать QlikView с другими каталогами и базами данных пользователей на предприятии.
Примеры матрицы доступа или ролей безопасности в проектах BI:
Qlik Sense Security Overview
Qlik Sense Stream Management Security Rules and Exception Management
Безопасность и разграничение прав доступа, матрица доступа QlikView
Важно, чтобы информация предоставлялась только тем пользователям, кто имеет право на ее просмотр. Поскольку QlikView делает ранее сложный и объемный процесс получения информации очень простым, очевидно, что вопрос безопасности является очень важным.
БЕЗОПАСНОСТЬ
Механизм защиты QlikView (Qlik Sense) может быть задан двумя различными способами: Он может быть либо встроен в скрипт документа QlikView (Qlik Sense), либо задан посредством использования QlikView Publisher.
АУТЕНТИФИКАЦИЯ И АВТОРИЗАЦИЯ
Аутентификация – это любой процесс, при котором подтверждается личность человека. QlikView (Qlik Sense) может либо позволить ОС Windows провести аутентификацию, либо запросить идентификатор пользователя и пароль (отличные от идентификатора и пароль пользователя Windows), либо использовать лицензионный ключ QlikView (Qlik Sense) как метод простой аутентификации.
Авторизация – это проверка наличия у уже идентифицированного человека прав на использование ресурса. QlikView (Qlik Sense) может либо позволить ОС Windows провести авторизацию, либо провести авторизацию самостоятельно. В последнем случае в скрипт должна быть встроена таблица безопасности.
ЗАЩИТА С ПОМОЩЬЮ QLIKVIEW PUBLISHER
Если QlikView Publisher настроен на обработку безопасности, то каждый файл QlikView будет разделен на несколько файлов, каждый из которых будет содержать данные, относящиеся к определенному пользователю или группе пользователей. Данные файлы будут храниться в папках с текущими настройками безопасности ОС, т.е. QlikView позволяет операционной системе провести аутентификацию и авторизацию.
Однако в сам файл защита не встроена, поэтому на загруженном файле защита отсутствует.
Размеры файлов, как правило, будут меньше, так как один файл будет разделен на несколько, пользователь открывает файл только со своими данными. Однако это также значит, что сервер QlikView может использовать больше памяти, чем если бы все данные находились в одном файле, так как иногда загружается несколько файлов содержащих одинаковые данные.
ЗАЩИТА С ПОМОЩЬЮ СЕКЦИИ ДОСТУПА В СКРИПТЕ QLIKVIEW (QLIK SENSE)
Если секция доступа в скрипте QlikView (Qlik Sense) настроена на автоматическую защиту, то один файл может содержать данные для нескольких пользователей или групп пользователей. QlikView (Qlik Sense) будет использовать информацию в секции доступа для аутентификации и авторизации, а также для динамического сокращения данных, чтобы пользователь мог видеть только свои данные.
Защита встроена в сам файл, поэтому даже загруженный файл в некоторой степени защищен. Однако, если потребности защиты высоки, следует предупреждать загрузку файлов и использование в автономном режиме. Файлы должны публиковаться только сервером QlikView (Qlik Sense).
Так как все данные находятся в файле, размер данного файла может быть очень большим.
Документы QlikView (Qlik Sense) можно сделать невидимыми в автономном режиме. Чтобы сделать невидимым документ пользователя, находящегося в автономном режиме, добавьте следующий атрибут в раздел сведений о документе с помощью QMC:
Вся информация, указанная ниже, относится к методу защиты, использующем секцию доступа в скрипте QlikView (Qlik Sense).
РАЗДЕЛЫ СКРИПТА
Управление доступом осуществляется с помощью одной или нескольких таблиц безопасности, загруженных так же, как QlikView (Qlik Sense) обычно загружает данные. Таким образом, возможно хранить данные таблицы в обычной базе данных. Операторы скрипта, управляющие таблицами безопасности, даны в секции доступа, которая в скрипте запускается оператором Section Access.
Если в скрипте определена секция доступа, то часть скрипта, загружающая «обычные» данные, должна быть помещена в другую секцию, запускаемую оператором section application.
Пример:
Section Access;
Load * inline
[ACCESS,USERID,PASSWORD
ADMIN, A,X
USER,U,Y ];
Section Application;
Load… … from… …
УРОВНИ ДОСТУПА В СЕКЦИИ ДОСТУПА
Доступ к документам QlikView (Qlik Sense) может быть авторизован для указанных пользователей или групп пользователей. В таблице безопасности пользователям могут быть назначены уровни доступа ADMIN или USER. Если уровень доступа не назначен, пользователь не сможет открыть документ QlikView (Qlik Sense).
Пользователь с доступом ADMIN может выполнять любые изменения в документе. С помощью страницы Безопасность в диалоговых окнах Свойства документа и Свойства листа пользователь с доступом ADMIN может ограничивать права других пользователей на изменение документа. Пользователь с привилегиями USER не имеет доступа к страницам Безопасность.
Права ADMIN применимы только к локальным документам. Доступ к документам, открытым на сервере, всегда выполняется с правами USER.
СИСТЕМНЫЕ ПОЛЯ СЕКЦИИ ДОСТУПА
Уровни доступа назначаются пользователям в одной или нескольких таблицах, загруженных в секции доступа. Данные таблицы могут содержать различные пользовательские системные поля (как правило, USERID и PASSWORD) и поле, определяющее уровень доступа (ACCESS). Все системные поля Секции доступа используются для аутентификации или авторизации. Ниже описан полный набор системных полей секции доступа.
В секцию доступа можно загрузить ни одного, все или любую комбинацию полей настроек безопасности. Если использование USERID не требуется, авторизация может быть проведена с помощью других полей, например только серийного номера.
ACCESS
Поле, определяющее, какой уровень доступа имеет соответствующий пользователь.
USERID
Поле, которое должно содержать принятый идентификатор пользователя. QlikView (Qlik Sense) запросит идентификатор пользователя и сравнит его со значением в данном поле. Данный идентификатор пользователя не совпадает с идентификатором пользователя Windows.
PASSWORD
Поле, которое должно содержать принятый пароль. QlikView (Qlik Sense) запросит пароль и сравнит его со значением в данном поле. Данный пароль не совпадает с паролем Windows.
SERIAL
Поле, которое должно содержать номер, соответствующий серийному номеру QlikView (Qlik Sense).
Пример: 4900 2394 7113 7304
QlikView (Qlik Sense) проверит серийный номер пользователя и сравнит его со значением в данном поле.
NTNAME
Поле, которое должно содержать строку, соответствующую имени пользователя или группы домена NT Windows.
QlikView (Qlik Sense) выдаст сведения о пользователе из ОС и сравнит ее со значением в данном поле.
NTDOMAINSID
Поле, которое должно содержать строку, соответствующую SID домена NT Windows.
Пример: S-1–5–21–125976590–4672381061092489882
QlikView (Qlik Sense) выдаст сведения о пользователе из ОС и сравнит их со значением в данном поле.
NTSID
Поле, которое должно содержать Windows NT SID.
Пример: S-15–21–125976590–467238106–1092489882–1378
QlikView (Qlik Sense) выдаст сведения о пользователе из ОС и сравнит их со значением в данном поле.
OMIT
Поле, которое должно содержать поле, которое должно быть опущено для конкретного пользователя. Могут использоваться подстановочные знаки, и поле может быть пустым. Простой способ сделать это — использовать подполе.
OMIT не следует применять к ключевым полям, поскольку это приведет к изменению внутренней структуры данных. В результате могут появиться логические островки и несогласованности в вычислениях.
QlikView (Qlik Sense) сравнит серийный номер QlikView (Qlik Sense) с полем SERIAL, имя пользователя и группы Windows NT с NTNAME, SID домена Windows NT с NTDOMAINSID и Windows NT SID c NTSID. Далее он запросит идентификатор пользователя и пароль и сравнит их с полями USERID и PASSWORD.
Если найденное сочетание идентификатора пользователя и свойств окружения также будет найдено в таблице секция доступа, документ открывается с соответствующим уровнем доступа. Если данное сочетание найдено не будет, QlikView (Qlik Sense) откажет пользователю в доступе к документу. Если идентификатор пользователя и/или пароль введены неверно три раза подряд, необходимо полностью повторить процедуру входа.
Поскольку та же внутренняя логика, являющаяся отличительной особенностью QlikView (Qlik Sense), также используется и в секции доступа, поля безопасности могут быть помещены в различные таблицы. (Таким образом, системный администратор может создать документ QlikView (Qlik Sense) вне таблиц безопасности. В этом случае верный серийный номер, пароль и т.д. будут созданы при щелчке соответствующего значения поля.)
При выполнении процедуры входа QlikView (Qlik Sense) сначала проверяет SERIAL, NTNAME, NTDOMAINSID и NTSID, для проверки, достаточно ли этой информации для предоставления пользователю доступа к документу. В случае предоставления доступа QlikView (Qlik Sense) откроет документ, не запрашивая идентификатор пользователя и пароль.
Если загружены только некоторые поля доступа, используются соответствующие требования из приведенных выше.
Все поля, перечисленные в операторах Load или Select в секции доступа, должны быть написаны в ВЕРХНЕМ РЕГИСТРЕ. Имя любого поля в базе данных, содержащее буквы в нижнем регистре, должно быть преобразовано в верхний регистр с помощью функции upper до чтения с помощью операторов Load или Select.
Однако для идентификатора пользователя и пароля, вводимых конечным пользователем, открывающим документы QlikView (Qlik Sense), учитывается регистр.
Знак подстановки, т.е. *, интерпретируется как все (перечисленные) значения этого поля, т.е. значение, указанное в каком-либо другом месте в этой таблице. При использовании в одном из системных полей (USERID, PASSWORD, NTNAME или SERIAL) в таблице, загруженной в секцию доступа скрипта, интерпретируется как все (также и не перечисленные) возможные значения этого поля.
При загрузке данных из файла QVD использование функции upper приведет к снижению скорости загрузки.
Для создания таблиц доступа во встроенных операторах используйте Мастер таблицы ограничения доступа.
Если функция доступа к секции активирована, нельзя использовать имена полей системы секции доступа, перечисленные здесь, в качестве имен полей в вашей модели данных.
ОГРАНИЧЕНИЯ ФУНКЦИЙ QLIKVIEW (QLIK SENSE)
Элементы управления на странице Свойства документа: Безопасность и Свойства листа: Безопасность позволяют запретить доступ к определенным элементам меню, а также запретить вносить изменения в макет. Если эти параметры будут использоваться в качестве действительно защитной меры, важно, чтобы пользователи вошли в систему как USER. Все пользователи, вошедшие как ADMIN, могут изменять параметры безопасности в любое время.
У пользователя, открывшего документ с правами USER, отсутствуют страницы Безопасность в диалоговых окнах «Свойства».
ДИНАМИЧЕСКОЕ СОКРАЩЕНИЕ ДАННЫХ
QlikView (Qlik Sense) и сервер QlikView (Qlik Sense) поддерживают функцию, позволяющую скрыть некоторые данные в документе от пользователя на основе входа в секцию доступа.
Прежде всего, поля (столбцы) можно скрыть, используя системное поле OMIT.
Кроме того, записи (строки) можно скрыть путем связи данных секции доступа с реальными данными: Выбор значения для отображения/исключения управляется с помощью одного или нескольких полей с общими именами в секции доступа и секции приложения. После входа пользователя в систему QlikView (Qlik Sense) попытается скопировать выборки в полях в секции доступа в любые поля в секции приложения с точно такими же именами (имена полей должны быть в ВЕРХНЕМ РЕГИСТРЕ). После создания выборок QlikView (Qlik Sense) будет постоянно скрывать все данные, исключенные этими выборками, от пользователя.
Для применения этой процедуры должен быть установлен параметр Начальное сокращение количества данных с учетом секции доступа на странице Свойства документа: Открытие. При использовании этой функции в документах, которые должны распространяться другими способами, а не через 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,
RechNo() AS NUM
AUTOGENERATE 3;
Поле REDUCTION (в верхнем регистре) теперь присутствует в секции доступа и секции приложения (все значения полей также в верхнем регистре). Обычно два поля будут разделены и полностью различны, но если установлен параметр Начальное сокращение данных с учетом Section Access, они будут связывать и сокращать число записей, отображаемых для пользователя.
Поле OMIT в секции доступа определяет поля, которые должны быть скрыты от пользователя.
Будет получен следующий результат:
Пользователь A может просматривать все поля, но только записи, связанные с REDUCTION=1.
Пользователь B может просматривать все поля кроме NUM, и только записи, связанные с REDUCTION=2.
Пользователь C может просматривать все поля кроме ALPHA, и только записи, связанные с REDUCTION=3.
УНАСЛЕДОВАННЫЕ ОГРАНИЧЕНИЯ ДОСТУПА
Бинарная загрузка вызовет наследование ограничений доступа новым документом QlikView (Qlik Sense). Пользователь с правами ADMIN для нового документа может изменить права доступа этого документа, добавив новую секцию доступа. Пользователь с правами USER может выполнять и изменять скрипт, таким образом добавляя собственные данные к файлам с бинарной загрузкой. Пользователи с правами USER не могут изменять права доступа. Также это позволяет администратору базы данных управлять правами доступа к документам QlikView (Qlik Sense) с бинарной загрузкой.
ШИФРОВАНИЕ
Связь между сервером QlikView и клиентом QlikView для Windows шифруется. Однако при использовании клиента AJAX связь не шифруется.
Кроме того, все документы QlikView шифруются, что делает информацию недоступной для средств просмотра, отладчиков и.д.
ПРОБЛЕМЫ ЗАЩИТЫ ДАННЫХ
В большинстве случаев при последующих обсуждениях предполагается наличие существующей системы управления базами данных (СУБД), а также использование приложения QlikView в качестве инструмента вывода. Однако аргументы по-прежнему остаются в силе, если исходные данные представлены в виде текстовых файлов.
БЕЗОПАСНОСТЬ И ЦЕЛОСТНОСТЬ ДАННЫХ
Защита данных обычно означает несколько различных вещей. Она может означать защиту вводимых данных от изменения или уничтожения по ошибке, отслеживание того, что данные вводятся правильно или предотвращение разглашение данных пользователям, не обладающим необходимыми разрешениями.
В этом контексте часто используются понятия целостность и безопасность, и несмотря на то, что с первого взгляда эти понятия выглядят похожими, на самом деле они сильно отличаются. Под безопасностью понимают защиту данных от несанкционированного доступа, в то время как целостность описывает достоверность данных, то есть:
В основном мы будем говорить о безопасности данных, поскольку средства для обеспечения целостности данных имеются в системе СУБД.
ПРАВО НА ИЗМЕНЕНИЕ ДАННЫХ
Первым шагом в области обеспечения безопасности является предотвращение случайного удаления или изменения данных пользователями. Для многопользовательских систем это означает использование операционной системы и системы управления базами данных с соответствующей защитой. Примерами таких операционных систем для компьютеров являются Windows NT или Novell. Примерами систем управления базами данных являются ORACLE, SQL Server или Informix.
Если операционная система не обеспечивает защиту данных, то всегда можно удалить данные по ошибке. Это также верно, даже если файл защищен с помощью пароля.
Следующим шагом является настройка привилегий для авторизованных пользователей. Если система настроена правильно, то выполнение каких-либо операций должно быть возможно только с помощью правильных инструментов, то есть с помощью инструментов, которые выполняют проверку наличия разрешений на выполняемые операции.
Для одного пользователя большинство проблем безопасности не существует. Поэтому часто достаточно регулярно выполнять резервное копирование файлов данных.
ПРАВО НА ПРОСМОТР ДАННЫХ
Последняя проблема в области безопасности данных связана с безопасностью при обращении с конфиденциальной информацией. Если приведенные выше проблемы безопасности были связаны с правом на изменение данных, то данная проблема связана с правом просмотра данных. Большинство систем управления базами данных содержат средства для предотвращения просмотра данных, находящихся в базе данных. Однако они не могут запретить просмотр копии данных, находящихся в файле QlikView. Поэтом приложение QlikView содержит свои собственные средства для предотвращения просмотра данными людьми, не имеющими соответствующих разрешений. Однако следует иметь в виду, что средство для ограничения доступа в приложении QlikView отслеживает только право на просмотр данных. QlikView не может предотвратить уничтожение данных пользователями с помощью других средств. Это может обеспечить только операционная система.
ЦЕЛОСТНОСТЬ ДАННЫХ
Целостность данных подразумевает упорядоченный поток данных. Необходимо определить процедуры ввода данных и следить за тем, чтобы данные вводились одинаковым образом. Отличным решением этой проблемы является разработка форм в системе СУБД. Формы также предотвращают ввод пользователями в базу данных недопустимых значений, например несуществующих номеров заказчиков.
При работе с однопользовательскими базами данных следует следить за тем, чтобы базу данных одновременно использовал только один пользователь. Многопользовательские базы данных, как это следует из названия, поддерживают одновременное редактирование в базе данных несколькими пользователями.
Еще один аспект, относящийся к этой проблеме, следующий: необходимо всегда четко знать, является ли файл или база данных оригиналом или копией. В противном случае кто-то очень вероятно начнет вводить данные в копию базы данных.