Beispiel 6 – Verwenden der Exists- und Except-Funktionen zum Angeben zulässiger und verweigerter Gruppen
In diesem Beispiel weist eine Datenbankrolle die Dimensionssicherheitseinstellungen in der nachfolgenden Tabelle auf.
Attribute |
IsAllowed |
AllowedSet |
DeniedSet |
ApplyDenied |
VisualTotals |
---|---|---|---|---|---|
State |
True |
|
EXCEPT (State..Members, {California}) |
False |
True |
City |
True |
EXISTS (City..Members, {California} + {Seattle}) |
|
False |
False |
Gender |
False |
|
|
True |
False |
Die Ergebnisse dieser Dimensionssicherheitseinstellungen sehen wie folgt aus:
Die verweigerte Gruppe für das State-Attribut gibt an, dass nur das California-Element von der Datenbankrolle angezeigt werden kann. Alle anderen vorhandenen Elemente sowie sämtliche neu hinzugefügten Elemente des State-Attributs sind nicht sichtbar.
Elemente in Attributhierarchien, die ein Mitglied des State-Attributs einschließen, bleiben sichtbar, obwohl das State-Attribut eine verweigerte Gruppe aufweist. Die Elemente in anderen Attributhierarchien bleiben sichtbar, da die ApplyDenied-Eigenschaft für die Attribute State und City auf False festgelegt ist.
Die Stadt Seattle ist sichtbar, da sie sich in der zulässigen Gruppe für das City-Attribut befindet.
Die aggregierten Gesamtergebnisse für die Attribute All Level und State schließen nur die Werte für sichtbare Elemente ein, da die VisualTotals-Eigenschaft für diese beiden Attribute jeweils auf True festgelegt ist.
Überprüfen des Resultsets
Basierend auf diesen Dimensionssicherheitseinstellungen für die Rolle (und basierend auf dem Cubezugriff auf alle Zellen) wird folgendes Resultset vom Cube zurückgegeben, wenn alle Elemente abgefragt werden.
All Level |
State |
City |
Gender |
Sales Amount |
---|---|---|---|---|
All Offices |
|
|
|
17400 |
|
California |
|
|
12900 |
|
|
San Jose |
|
4200 |
|
|
San Francisco |
|
4400 |
|
|
Los Angeles |
|
4300 |
|
Washington |
|
|
4500 |
|
|
Seattle |
|
4500 |
Siehe auch