Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Hi,
I am trying to implement security with 2 levels
1. User logged in has access to specific tabs (this I have figured out in Sheet Access)
2. Users role determines what region and agent information he will see (this I am struggling with)
security:
load "ACCESS" as ACCESS, NTNAME AS NTNAME ,GROUPNAME, REGION, AGENT_USERNAME;
select "ACCESS" , NTNAME ,GROUPNAME, REGION,username as AGENT_USERNAME
from QLIKVIEW.VW_QV_SECURITY_ROLES where rnk=1;
Section Application;
SheetAccess:
LOAD * Inline [
SH06,SH02,SupervisorSH, SH03
1,1,1,1,'CENTRAL ADMINISTRATION'
0,0,1,1,'SUPERVISOR'
0,1,1,1,'REGION' ,REGION
0,0,0,1,'AGENT' ];
The challenges are as follows: the groupname and regions the users can access are stored in an oracle table, not inline
- when i try to place '*' in the database table it is not read in the security - Qlik thinks the '*' is the name of the region
- some users need to have access based on region and some on agent username and others both - when i try to include both columns it creates a synthetic key with 2 columns
The ideal security should follow this pattern
- central admin should have access to all regions and all agentnames & associated cases
- region should have access to specific region stored in the database and associated agentnames & associated cases
- agent should have access to his agent information only - and associated region & associated cases
- supervisor has access to his agents and the associated regions & associated cases
groupname | region | agentname |
central admin | * | * |
region | ?? | ?? |
agent | ?? | ?? |
supervisor ?? ??
Thanks in advance for your help!!
Rick
I found some good posts by HIC related to hierarchy and security
I had to use a combination of concat keys and generic keys to get everything to work!!!
create a link table with the following code to join the security table to rest of the data model
Load * , REGION&'|'&SUPERVISOR_ID&'|'& AGENT_ID AS SECKEY Resident AGENT;
Concatenate
Load * , 'ANY' AS SECKEY Resident AGENT;
Thanks Henric!
I found some good posts by HIC related to hierarchy and security
I had to use a combination of concat keys and generic keys to get everything to work!!!
create a link table with the following code to join the security table to rest of the data model
Load * , REGION&'|'&SUPERVISOR_ID&'|'& AGENT_ID AS SECKEY Resident AGENT;
Concatenate
Load * , 'ANY' AS SECKEY Resident AGENT;
Thanks Henric!