Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Hi All,
I am new to section access in Qlik sense.
I have following 3 tables with sample data:
Geo Table
GeoName | DocumentStatus | Sales |
---|---|---|
India | Completed | 1400 INR |
USA | Incomplete | 2000 INR |
Canada | Completed | 4500 INR |
ANZ | Completed | 1500 INR |
Russia | Incomplete | 2500 INR |
Zone Table
ZoneName | DocumentStatus | Sales |
---|---|---|
South | Completed | 1400 INR |
North | Incomplete | 2000 INR |
East | Completed | 4500 INR |
West | Completed | 1500 INR |
Central | Incomplete | 2500 INR |
Country Table
CountryName | DocumentStatus | Sales |
---|---|---|
India | Completed | 1400 INR |
USA | Incomplete | 2000 INR |
Canada | Completed | 4500 INR |
Australia | Completed | 1500 INR |
UK | Incomplete | 2500 INR |
Now I am showing these table information on map through geo-analytics as below.
Now when anyone logged on Qlik sense, then only logged in user associated records should get display.
e.g. Permission Matrix is as below:
UserName | PermissionType | Value |
---|---|---|
dir\jeeva | Geo | India |
dir\jeeva | Geo | Canada |
dir\prasad | Zone | South |
dir\prasad | Country | India |
As per above matrix when JEEVA logged in the qlik sense, he should see Geo (India and Canada), he should not see other geo, zone or countries.
My Section access query is as below:
SECTION ACCESS;
LOAD * INLINE
[
ACCESS, NTNAME, GROUP, GEONAME
USER, DIR\PRASAD, *, INDIA
USER, DIR\JEEVA, *, INDIA
];
But when JEEVA is not logged in the Qlik sene, he is getting ACCESS DENIED issue.
Can anyone help me with this issue, might I am doing something wrong with section access script.
Thanks
Dilip Solanki
take care of case sensitive feature of Qlik.
all section access tables content MUST be in uppercase.
Thanks Andrea, But I have already used all contents in uppercase only.
It doesn't seems looking at your table above...India, Canada, etc...
anyway take a look at https://help.qlik.com/en-US/sense/February2018/Subsystems/Hub/Content/Scripting/Security/manage-secu...
it has only ACCESS and USERID columns.
try the script below:
SECTION ACCESS;
SA:
LOAD * INLINE
[
ACCESS, USERID, SA_GEONAME
USER, DIR\JEEVA, INDIA
];
SECTION APPLICATION;
LOAD
USERID,
SA_GEONAME AS GEONAME
RESIDENT SA;
where GEONAME is the field name for data reduction on.
Thanks Andrea.
I have implemented the same way you have suggested. But its seems not as expected.
See my section access query:
SECTION ACCESS;
SA:
LOAD * INLINE
[
ACCESS, USERID, SA_GEONAME
ADMIN, DIR\DHARMESH.BAROCHIA, *
USER, DIR\J.A.SASIKUMAR, INDIA
USER, DIR\DILIP.SOLANKI, INDIA
USER, DIR\DILIP.SOLANKI, CANADA
USER, DIR\DILIP.SOLANKI, ANZ
];
SECTION APPLICATION;
LOAD
USERID,
SA_GEONAME AS GEONAME
RESIDENT SA;
Now when Dilip.Solanki is logged in the application he is not seeing section access reflects. Dilip is getting all the GeoName instead of INDIA, CANADA and ANZ.
Can you suggest if I am doing anything wrong here?
Thanks
Dilip Solanki
is GEONAME field linked to some other table field in your data model?
let me know.
No Andrea. I have only 3 tables GeoTable, ZoneTable and CountryTable. GeoName field is only in GeoTable.
Let me know if any other clarification required.
ok but in GeoTable the field should be renamed in GEONAME.
Try
SECTION ACCESS;
SA:
LOAD * INLINE
[
ACCESS, USERID, SA_GEONAME
USER, DIR\JEEVA, INDIA
];
SECTION APPLICATION;
Temp_Geo _able:
LOAD
UPPER(Geo Table) as SA_GEONAME
,*
RESIDENT [Geo Table];
Drop table [Geo Table];
Rename Temp_Geo_Table to [Geo Table];
Are you running your app load from a task? If so, you will need an entry in your inline table for INTERNAL\SA_SCHEDULER.