Search code examples
sqlssassql-server-data-tools

SSAS cube restrict data source by role


I have a data source for a SSAS Multi-dimensional (MOLAP) cube that has a column called RegionId where the value will be 1, 2, 3 or 4

I then have some user roles in SSAS where I want to restrict the data a user will see in a measure group by a single RegionId i.e. 1.

Example:

RegionId = 1, Week = 1, Value = 500 RegionId = 1, Week = 1, Value = 700 RegionId = 2, Week = 1, Value = 300 RegionId = 3, Week = 1, Value = 500

If a Region 1 user were to view this data in the cube and group the data by the Week = 1 then they should see a total of 700 + 500 = 1200 Not the total across all regions.

There is a way to restrict the data they can select in a dimension but if they were to use the time dimension ONLY then they would see values in their measures group that are not related to their specific region.

I believe this sort of thing is called row level security? However I have not found a clear way to do this for a Multi-dimensional cube, only in Tabular.. which I am not using.

Anyone know how this can be achieved? easily using the roles permission settings? Can this be done in the role's cell data tab using some MDX ? if so please can you provide an example of that?


Solution

  • Your cube will return only region related data if you check the visual totals box as explained here: http://easyroles.com/2014/02/visual-totals-in-ssas-security/