Hi,
I'm working a project where we have a dimension with approx 10.000.000 members. To find out which members a user is allowed to see we have a User dimension and a factless fact between that and the dimension where the security is implemented. The way the MDX is implemented I return the members a user is allowed to see based on the rows in the fact less fact using Exists() or NonEmpty(). However when this set is empty the user should have access to all 10.000.000 members. The dimension with the 10.000.000 members is hidden and the user is never able to browse it or use it, it's only used for implementing the security.
The problem is this: when the allowed set is empty the user should see all 10.000.000 members so my MDX return [Dimension].[Dimension Key].[All].Children which just doesn't perform at all.
There is no problem at all when the user only has access to a few thousands or less members of the 10.000.0000 member dimension.
My question is this: Can I somehow avoid returning [Dimension].[Dimension Key].[All].Children and just do nothing, or somehow smarter return all the members in the dimension as the allowed set?
Thanks.


