Exemple 6 : utilisation des fonctions Exists et Except pour définir les jeux autorisés et refusés
Dans cet exemple, un rôle de base de données est configuré avec les paramètres de sécurité de dimension indiqués dans le tableau suivant.
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 |
Les résultats de ces paramètres de sécurité de dimension sont les suivants :
Le jeu refusé pour l'attribut State indique que le rôle de base de données peut afficher uniquement le membre California. Tous les autres membres existants et les membres ajoutés à l'attribut State ne seront pas visibles.
Les membres des hiérarchies d'attributs qui incluent un membre de l'attribut State restent visibles, même si l'attribut State a un jeu refusé. Les membres des autres hiérarchies d'attributs restent visibles, car la propriété ApplyDenied des attributs State et City a la valeur False.
La ville Seattle est visible, car elle se trouve dans le jeu autorisé pour l'attribut City.
Les totaux agrégés des attributs All Level et State incluent uniquement les valeurs des membres visibles, car la propriété VisualTotals de ces deux attributs a la valeur True.
Vérification du jeu de résultats
Compte tenu de ces paramètres de sécurité de dimension pour le rôle (et de l'accès du cube à toutes les cellules), le jeu de résultats suivant est retourné par le cube lorsque tous les membres font l'objet d'une requête.
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 |
Voir aussi