Introduction to Dimension Security in Analysis Services 2005
Introduction
Analysis Services 2005 has two security models for securing data: dimension security and cell security. Dimension security is used to permit or deny access to members of a dimension and any data associated with those members. Cell security permits or denies access to cell values only.
For example, consider the example of a cube containing a customers dimension with a country attribute hierarchy and two measures, sales and expense.
|
Measures Customer.Country |
Sales |
Expense |
|
|
10 |
30 |
|
|
30 |
18 |
|
|
20 |
20 |
|
Measures Customer.Country |
Sales |
Expense |
|
|
10 |
30 |
|
|
30 |
18 |
|
|
#N/A |
#N/A |
|
Measures Customer.Country |
Sales |
Expense |
|
|
10 |
30 |
|
|
30 |
18 |
Dimension security is defined on each attribute hierarchy and is applied wherever the attribute is used. For example, if dimension security is defined on Product.[Product Name] attribute hierarchy and the attribute sources the [Product Name] level in separate user hierarchy, dimension security is applied in both places.
AllowedSets and DeniedSets
The interesting thing is how security one attribute affects other attributes. For allowed sets, the behavior is straightforward. If a member of another attribute exists with the allowed set, it is allowed unless explicitly disallowed. If a member does not exist with a member of the allowed set, it is disallowed (unless explicitly allowed).
|
Attribute |
AllowedSet |
DeniedSet |
|
Country |
|
|
|
State |
|
|
|
City |
{Customer.State.SJ} |
|
|
Name |
|
|
Scenario 2: Descendants of a member are not allowed
|
Attribute |
AllowedSet |
DeniedSet |
|
Country |
|
|
|
State |
|
{Customer.State.OR} |
|
City |
|
|
|
Name |
|
|
|
Attribute |
AllowedSet |
DeniedSet |
|
Country |
|
|
|
State |
|
|
|
City |
|
|
|
Name |
|
Customer.Name.Name.members |
Scenario 4: Unbalanced Hierarchy
Security is defined such that more detail is available among some members of a hierarchy, but are secured in others:
|
Attribute |
AllowedSet |
DeniedSet |
|
Country |
|
|
|
State |
|
|
|
City |
|
Exists(Customer.City.City.members, Customer.State.CA) |
|
Name |
|
Customer.Name.Name.members |
Visual Totals
If a member of an attribute hierarchy is secured, one has two choices to how data rolls up to the all member of the hierarchy:
- users see the true totals
- users see the totals of the data they are permitted to see.
|
Customer.Country |
Sales |
|
All |
60 |
|
|
10 |
|
|
30 |
|
|
20 |
|
Customer.Country |
Sales |
|
All |
??? |
|
|
10 |
|
|
30 |
Dimension security can be defined on the shared dimension or on the cube dimension. If dimension security is defined on the shared dimension, it is inherited in all cubes containing the dimension. If dimension security is defined on the cube dimension, this inheritance relationship is severed; however, if the dimension security on the cube dimension is completely eliminated the inheritance rules are restored.
Dimension security allows security to be defined such that almost any part of a dimension can be secured from view. Visual totals can be turned on or off such that users need not be aware that the dimension contains members they are not permitted to see.
浙公网安备 33010602011771号