security2There are two types of data reduction methods normally used in QlikView.

Section Access — used for dynamic data reduction

Loop and Reduce — used for static data reduction

Both methods work well based on your goal for the data reduction. However, recently, I was asked if there is a way to hide a table from a group of users vs another group of users who need to see that table with sensitive data.

There are always many ways to skin a cat when it comes to possible solutions in QlikView so I devised one that may interest you. And, I would love to know if you can think of a  better approach for this specific requirement.

Assume that products table has sensitive data and you want to hide it from users so you have two AD groups — one that can see all tables including products table and another that can see all tables but products table.

partial reloadPartial Reload:

This command executes only Load and Select statements preceded by a Replace or Add prefix. Other data tables remain unaffected by the command.

Now the trick is to add only argument to the replace prefix since only is an  optional qualifier denoting that the statement should be disregarded during normal (non-partial) reloads.

replace only

 

 

 

 

 

 

 

 

 

Add an island inline table just to perform loop and reduce using same source document.

It can be something like this:

loop

 

 

 

 

 

Next, create two tasks in QMC:

A partial reload task along with loop and reduce using the field Loop so that same source document can be used to create a user document with products table(sensitive data).

task1  task1-1

 

 

 

 

Another task for the normal load so that the load will ignore products table due to only argument along with replace prefix.

Partial reload is normally a handy feature while you develop an application since it will allow you to reload changes to smaller tables without reloading a large fact table but I found this trick useful to hide table with sensitive data.

I am ceaselessly amazed at many ways to skin a cat when it comes to finding creative solutions in QlikView and Qlik Sense!


If you enjoyed this article, get email updates (it’s free).

Email Address:

  • Karl 11:44 pm on June 20, 2018 Permalink

    Hi Shilpan,
    There are plenty of ways to skin a cat. I would probably do one of two things. I would assign a value to a variable through a publisher task and use an if statement that loaded products depending on the value of that variable. It achieves the same but might be easier to understand for the next person. You could also use the omit column in section access to remove several fields although I assume you can’t omit a key field. However the key field should be abitrary numbers that aren’t by themselves sensitive.

    Best, Karl

    • Shilpan 11:03 pm on June 21, 2018 Permalink

      Thanks Karl! I will definitely try variable. This document doesn’t have Section Access but I agree that is another option.

  • Karl 1:22 pm on June 22, 2018 Permalink

    An interesting question is whether you would ever use Section Access to only omit columns. I’ve never faced that situation, but I agree with you that it’s an added level of complexity that one should avoid if possible.