Разграничение доступа в Qlikview (через представление на уровне sql server)

Автор googlogmob, 13 июля 2015, 12:09:52

« назад - далее »

googlogmob

Добрый день
Есть база на sql server. В ней таблица. В таблице есть поле - регион. Созданы представления, отдельно для каждого региона, в которых в выражении where указан фильтр по региону. Созданы пользователи в sql server для каждого региона. Для каждого представление настроен доступ только для определенного пользователя (этого региона).
Нужно предоставить разрозненный доступ пользователям на одинаковых дашбордах

Подскажите, как реализовать такой дифференцированный доступ через qlik server?
Возможно, существует более простой и технически правильный способ предоставить разрозненный доступ пользователям?

kvv

Цитата: googlogmob от 13 июля  2015, 12:09:52  
Добрый день
Есть база на sql server. В ней таблица. В таблице есть поле - регион. Созданы представления, отдельно для каждого региона, в которых в выражении where указан фильтр по региону. Созданы пользователи в sql server для каждого региона. Для каждого представление настроен доступ только для определенного пользователя (этого региона).
Нужно предоставить разрозненный доступ пользователям на одинаковых дашбордах

Подскажите, как реализовать такой дифференцированный доступ через qlik server?
Возможно, существует более простой и технически правильный способ предоставить разрозненный доступ пользователям?

Добрый день.
Самое первое что приходит на ум, это использовать "QVuser( )".
То есть, допустим есть 5 регионов. В QlikView создаем 5 пользователей и 5 листов (sheet) для каждого региона. В свойствах первого листа (sheet_01) в (General ---> Conditional) пишем условие, что данный лист (sheet_01) виден только для пользователя user_01 и все расчеты на данном листе "урезаны" для региона, который нужен пользователю user_01. По аналогии делаем sheet_02, на котором данные для пользователя user_02 и т.д.

kvv

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

Далее, можно, для каждого региона сделать свои qvd-файлы и аналогично, как описано в первом посте, отдавать данные для каждого региона со своего qvd-файла и ограничивать просмотр через General ---> Conditional - прикрепленный файл 01.png

В общем, как-то так.

P.s. Интересно, почитать другие предложения по этому поводу.

admin

День добрый.
Вытаскиваете данные штатным образом, без учета прав доступа.
А уже в Qlikview придется разграничивать доступ по пользователям и регионам штатным образом.
В документации почитайте раздел про безопасность (section access, section application).
ЦитироватьМеханизм защиты может быть задан двумя различными способами: он может быть либо встроен в скрипт документа QlikView, либо задан посредством использования QlikView Publisher.

googlogmob

Спасибо Большое
Вот: 29.8 Динамическое сокращение данных

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

Но проблема: При обновлении данных пользователем фильтр не срабатывает, и подгружаются все не фильтрованные данные. Конфуз
Что делать?
вот скрипт
Извините, вам запрещён просмотр содержимого спойлеров.

admin


googlogmob

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


googlogmob

это скорее не по моему вопросу. Разграничение работает и у меня. Но после загрузки данных пользователем все эти фильтры слетают (в принципе, даже в самих настройках указано, что динам.фильрация запускается при открытии, а не при обновлении)
Что делать?

admin


googlogmob

11 персонал
Нашел тему https://community.qlik.com/thread/124752
Люди решили эту задачу путем разграничения данных по листам и настроенной доступностью к каждому листу. Может тоже вариант..

admin

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

admin


googlogmob

Цитата: admin от 14 июля  2015, 12:30:25  
Ну если результат будет устраивать - значит тоже вариант.
Если динам. фильтрация отрабатывает только на открытии, сделайте обновление данных через командную строку, независимо от пользователя. А ему запретите обновление.
В итоге, когда он будет открывать приложение то оно будет содержать обновленные данные и после авторизации произойдет обрезка лишних данных.

Вот об этом и думаю

googlogmob

Цитата: admin от 14 июля  2015, 12:32:11  
Стоп.
Если локалка, откуда пользователи?

Проект в рамках сети офиса. Хотя может и через сервер реализуем.
Хотя теперь идея через отдельные представление в sql и авторизироваться уже в нем, кажется не такой уж и плохой.. Порезать на уровне сервера, и меньше сеть нагружать. Просто придется скрипты пописать отдельно для каждого пользователя. Здесь большой минус с настройкой элементов на листах (добавлением,удалением) - придется всем править.

Яндекс.Метрика