Добрый день
Есть база на sql server. В ней таблица. В таблице есть поле - регион. Созданы представления, отдельно для каждого региона, в которых в выражении where указан фильтр по региону. Созданы пользователи в sql server для каждого региона. Для каждого представление настроен доступ только для определенного пользователя (этого региона).
Нужно предоставить разрозненный доступ пользователям на одинаковых дашбордах
Подскажите, как реализовать такой дифференцированный доступ через qlik server?
Возможно, существует более простой и технически правильный способ предоставить разрозненный доступ пользователям?
Цитата: 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 и т.д.
При условии, что данных относительно мало, можно попробовать проверять пользователя на этапе загрузки и выдать ему урезанные данные - прикрепленный файл 02.png
Далее, можно, для каждого региона сделать свои qvd-файлы и аналогично, как описано в первом посте, отдавать данные для каждого региона со своего qvd-файла и ограничивать просмотр через General ---> Conditional - прикрепленный файл 01.png
В общем, как-то так.
P.s. Интересно, почитать другие предложения по этому поводу.
День добрый.
Вытаскиваете данные штатным образом, без учета прав доступа.
А уже в Qlikview придется разграничивать доступ по пользователям и регионам штатным образом.
В документации почитайте раздел про безопасность (section access, section application).
ЦитироватьМеханизм защиты может быть задан двумя различными способами: он может быть либо встроен в скрипт документа QlikView, либо задан посредством использования QlikView Publisher.
Спасибо Большое
Вот: 29.8 Динамическое сокращение данных
ПС, оказалось не все так просто.
Скрипт создал согласно руководству, в пункте "Открытие" нужные параметры выбрал.
При открытии файла все гуд, данные фильтруются,
Но проблема:
При обновлении данных пользователем фильтр не срабатывает, и подгружаются все не фильтрованные данные. Конфуз
Что делать?
вот скрипт
Извините, вам запрещён просмотр содержимого спойлеров.
А если "Начальный выбор с учетом Section Access." включить?
то просто запускается с полным списком подразделений, и выбранным подразделением авторизированного пользователя. Не то
https://community.qlik.com/thread/165864?sr=stream&ru=108532
это скорее не по моему вопросу. Разграничение работает и у меня. Но после загрузки данных пользователем все эти фильтры слетают (в принципе, даже в самих настройках указано, что динам.фильрация запускается при открытии, а не при обновлении)
Что делать?
:)
А о какой версии идет речь?
11 персонал
Нашел тему https://community.qlik.com/thread/124752
Люди решили эту задачу путем разграничения данных по листам и настроенной доступностью к каждому листу. Может тоже вариант..
Ну если результат будет устраивать - значит тоже вариант.
Если динам. фильтрация отрабатывает только на открытии, сделайте обновление данных через командную строку, независимо от пользователя. А ему запретите обновление.
В итоге, когда он будет открывать приложение то оно будет содержать обновленные данные и после авторизации произойдет обрезка лишних данных.
Стоп.
Если локалка, откуда пользователи?
Цитата: admin от 14 июля 2015, 12:30:25
Ну если результат будет устраивать - значит тоже вариант.
Если динам. фильтрация отрабатывает только на открытии, сделайте обновление данных через командную строку, независимо от пользователя. А ему запретите обновление.
В итоге, когда он будет открывать приложение то оно будет содержать обновленные данные и после авторизации произойдет обрезка лишних данных.
Вот об этом и думаю
Цитата: admin от 14 июля 2015, 12:32:11
Стоп.
Если локалка, откуда пользователи?
Проект в рамках сети офиса. Хотя может и через сервер реализуем.
Хотя теперь идея через отдельные представление в sql и авторизироваться уже в нем, кажется не такой уж и плохой.. Порезать на уровне сервера, и меньше сеть нагружать. Просто придется скрипты пописать отдельно для каждого пользователя. Здесь большой минус с настройкой элементов на листах (добавлением,удалением) - придется всем править.