Section access розмежування прав доступу до даних, data-daily

Section access розмежування прав доступу до даних, data-daily

Добрий день, Qlik-світ! Сьогодні розповім, як розмежувати доступ до даних на основі Section Access.

Розмежування даних по SACCESS - досить проста і при цьому корисна річ, яка не потребує великої кількості коду. Фактично йде просте додавання ще однієї таблиці, в якій прописуються обмеження.

SectionAccess: розмежовуємо права доступу до даних

Розмежування доступу до даних відбувається через додавання до стандартних полях в таблиці Section Access тих полів, за якими відбувається розмежування.

Безумовно, про Section Access можна прочитати докладно в довідковому керівництві по QlikView в розділі 29. Але ж усім відомо, що більшість людей звертається до інструкції, коли вже нічого не допомагає, тому в цьому пості - коротко про те, як обмежити доступ користувачів до певних даними.

Є стандартні поля:

Але для розмежування доступу ми візьмемо тільки 2 з цих полів, а третє поле створимо власне і по ньому призначимо розмежування прав.

Section Access: приступаємо до роботи

Давайте припустимо, що у нас є 6 типів регіонів (GEO_TYPE), і до кожного з цих типів ми хочемо надати доступ тільки одній людині.

Це можна зробити двома способами.

  • Прив'язати обмеження до умови розрахунку або відображення даних.
  • Зрізати дані на етапі завантаження програми.

В першому випадку. умова потрібно буде забивати всюди, де є розрахунок по потрібним нам полях (в даному випадку за типами регіонів). Так як дані все ще будуть присутні в додатку то, створюючи свій об'єкт, людина отримає доступ до даних, які не повинні бути йому доступні.

У другому випадку. дані, які не повинні бути йому видно, в будь-якому разі не будуть для нього доступні, тому розглянемо докладніше саме такий варіант розмежування прав користувачів.

Отже, для початку зробимо нашу табличку. Її можна як завантажувати INLINE, прописуючи все в скрипті, так і завантажуючи сам файл.

За допомогою SubField (GEO_TYPE, ';') ми поділяємо одну клітинку, щоб зв'язати дані з шпальти GEO_TYPE з таким же стовпцем в даних і потім зробити зріз.

Якщо ми поставимо «*». це рівнозначно тому, що ми прописали всі можливі значення.

НА ЗАМІТКУ! Для користувача від імені, якого відбуватиметься перезавантаження на сервері, бажано ставити «*» або всі можливі значення. У ACCESS треба прописувати ADMIN, інакше він може або зберегти вже обрізаний файл, або і зовсім його не зберегти за недостатності прав.

УВАГА: У таблиці SACCESS назви стовпців обов'язково повинні бути прописані великими літерами або цифрами. Значення в них теж повинні містити в собі тільки великі літери або цифри. Скрипт для SACCESS пишеться виключно в Hidden Script.

Section Access: настройка прав доступу

Після додавання SACCESS і перезавантаження, ми побачимо, що нічого не змінилося. Дані відображаються, як і раніше, навіть якщо у нас вказано, що нам можна бачити тільки 100 і 200 тип.

Section access розмежування прав доступу до даних, data-daily

Щоб все працювало треба включити в настройках обрізання даних по SACCESS. Заходимо в Settings → Document Properties → Opening і ставимо галочки:

  • Initial Data Reduction Based on Section Access
    • Strict Exclusion

Section access розмежування прав доступу до даних, data-daily

Друга галочка прибирає всі дані, які не підходять вам по SACCESS в момент запуску програми.

Так як ми самі вказуємо у файлі хто адмін, а хто користувач, то нам треба заглянути ще на закладку Security і прибрати все галочки, крім останньої, «Admin Override Security»:

Section access розмежування прав доступу до даних, data-daily

УВАГА: Якщо ви хочете протестувати на собі права USER, створіть краще копію програми, тому що ви не зможете змінити додаток, будучи з такими правами, і повернути права ADMIN собі.

На цьому сьогодні все. До нових зустрічей тут, на qlikdaily.ru

Схожі статті