SideBar    December 2002 MDX Puzzle Solution, January 2003 MDX Puzzle

You might also notice that the MDX filters only the leaf-level members of the Customers dimension. Although filtering all members in the dimension would seem appropriate, I couldn't get that kind of expression to work properly. The Microsoft representative I spoke to suggested that I filter only the leaf-level members because the end result would be the same: Only the intermediate members that lead to the remaining leaf-level members would be available.

After you type your MDX expression into the Custom Dimension Security window, click OK to save the security role. You might receive an error message from Analysis Manager that says it doesn't recognize the measure. Click OK and continue—the role will be saved correctly. In the Database Role Manager, click the ellipses button that's below the heading Cubes & Mining Models. You can then select which cube in the database to apply this security role to.

You can also enter security roles by right-clicking a cube and selecting Manage Roles, but sometimes the role isn't correctly updated at the database level if you do this. When you're working with custom security roles, I recommend that you change the roles in the Database Role Manager, then apply them to the appropriate cubes.

Implementing a security system such as the one I describe here can be frustrating because making small mistakes in a formula or in the configuration can cause non-intuitive or misleading error messages. Worse, you might get no error message—the security just doesn't work as you expect. I highly recommend that you verify your MDX expressions by using the MDX sample program or another OLAP front-end tool before you apply them to a security role in Analysis Manager. You'll get more informative error messages, and you'll have the added benefit of being able to easily experiment with parts of the formula until you get it to work correctly.

In my eyes, security is a necessary evil. Security always adds administration complexity and frequently makes your application harder for end users to work with. The member-property and virtual-cube solutions I've offered can help you reduce that complexity without degrading ease of use. These schemes aren't without headaches, but they do let you work around the maintainability and scalability limitations of Analysis Services 2000.

End of Article

Prev. page     1 [2]     next page -->



You must log on before posting a comment.

If you don't have a username & password, please register now.

Reader Comments

How about memory usage with this approach? Will analysis server create a replica dimensions for each user? Just like role recurity? Thanks.

joelm

This works if the user is selecting something below the ALL level. What if you want to retain an "All" level containing ONLY the members the user has access to?

Finalist

Article Rating 4 out of 5

Can you update this for SSAS 2005? Since virtual cubes are no longer implemented, this probably falls under the many-to-many dimension.

jc9474

Article Rating 4 out of 5

 
 

ADS BY GOOGLE