29 June 2012

Qlikview: Security 1: Data Reduction 1

Sometimes, we may need to filter our data according to logged in user's geographical profile. If we have a well structured geographical data associated with our fact data, then the solution is easy for the following scenarios. Please note that I assumed, we have fields named as COUNTRY, STATE, REGION and CONTINENT in our data.

1) If the user Jean-Paul is only allowed to see France data, then we can add the following row into our Section Access table and reduce the data to France only for Jean-Paul:

ACCESS  USERID  PASSWORD  COUNTRY  STATE  REGION  CONTINENT
------  ------  --------  -------  -----  ------  ---------
USER    JPAUL   JPAUL     FRANCE   ALL    ALL     ALL


2) If the user Brian is allowed to see United Kingdom and Ireland data, then we can add the following rows into our Section Access table and reduce the data to United Kingdom and Ireland only for Brian:

ACCESS  USERID  PASSWORD  COUNTRY  STATE  REGION  CONTINENT
------  ------  --------  -------  -----  ------  ---------
USER    BRIAN   BRIAN     UK       ALL    ALL     ALL
USER    BRIAN   BRIAN     IRELAND  ALL    ALL     ALL


3) If the user EuropeManager is allowed to see data of all European Countries, then we only need to add the following row into our Section Access table:


ACCESS  USERID   PASSWORD  COUNTRY  STATE  REGION  CONTINENT
------  -------  --------  -------  -----  ------  ---------
USER    EUR_MAN  EUR_MAN   ALL      ALL    ALL     EUROPE


4) If the user George is only allowed to see Florida (USA) data, we need to do the data reduction with two fields in Section Access table, as follows:



ACCESS  USERID   PASSWORD  COUNTRY        STATE    REGION  CONTINENT
------  -------  --------  -------------  -------  ------  ---------
USER    US_FL    US_FL     UNITED STATES  FLORIDA  ALL     ALL




5) If we need to have a regional filter for a user and the region is not defined in our data, then we can define the region in a separate table in Section Application. So, we have two steps to fullfill this requirement:



5.1) Define region by creating a new table (let's name it as REGIONS) in Section Application:


REGION         COUNTRY
--------------  -------------
WESTERN_EUROPE AUSTRIA
WESTERN_EUROPE BELGIUM
WESTERN_EUROPE FRANCE
WESTERN_EUROPE GERMANY
WESTERN_EUROPE LIECHTENSTEIN
WESTERN_EUROPE LUXEMBOURG
WESTERN_EUROPE MONACO
WESTERN_EUROPE NETHERLANDS
WESTERN_EUROPE SWITZERLAND

5.2) Add the following row to the into our Section Access table:

ACCESS  USERID  PASSWORD  COUNTRY  STATE  REGION          CONTINENT
------  ------  --------  -------  -----  --------------  ---------
USER    WEUR    WEUR      ALL      ALL    WESTERN_EUROPE  ALL



Following is the link for the implemented solution, please login with the userid and password pairs mentioned above and observe how data is reduced. When you login with userid ADMIN (password is also ADMIN), you can see the all data and also access the script.

https://sites.google.com/site/quickdevtips/home/security1.qvw?attredirects=0&d=1


No comments:

Post a Comment