Octroi d'accès personnalisés aux données des cellules

Après avoir accordé à un cube un rôle de base de données dans les autorisations de lecture ou lecture/écriture Microsoft SQL Server 2005 Analysis Services (SSAS), les membres de rôle disposent de l'accès requis pour afficher toutes les données des cellules. Pour limiter l'accès à certaines cellules, vous devez restreindre l'accès aux cellules de façon spécifique. Pour restreindre l'accès à des membres de dimension spécifiques, consultez Octroi d'accès personnalisés aux données des cellules.

Pour permettre à un rôle de base de données d'accéder à des cellules spécifiques, vous devez utiliser l'expression multidimensionnelle MDX (Multidimensional Expressions) pour définir une plage de cellules avec des autorisations de lecture, de lecture du contingent ou de lecture/écriture. Pour plus d'informations, consultez Utilisation d'expressions MDX pour définir les autorisations sur les données des cellules.

Instructions de définition des autorisations

Qu'un rôle de base de données dispose ou non des autorisations de lecture, de lecture du contingent ou de lecture/écriture sur les données des cellules, des règles et des informations de base peuvent faciliter la gestion de ces autorisations.

  • Accordez les autorisations sur les cellules dérivées avec précaution.
    Une cellule dérivée obtient ses données d'autres cellules. Si le rôle de base de données dispose d'une autorisation sur la cellule dérivée, mais pas sur les cellules depuis lesquelles la cellule dérivée obtient ses valeurs, un membre du rôle de base de données peut déduire les valeurs des cellules sur lesquelles il ne dispose pas d'autorisation. Supposons que le rôle de base de données ait une autorisation sur les cellules des mesures Sales et Profit (c'est-à-dire que ces mesures sont visibles pour le rôle de base de données) et qu'il n'ait pas d'autorisation sur les cellules de la mesure Cost. Un membre de ce rôle de base de données peut déterminer alors les valeurs de la mesure Cost en soustrayant les valeurs de la mesure Profit des valeurs de la mesure Sales.

  • Les autorisations sur les données des cellules ne peuvent pas être supérieures à celles détenues sur le cube.
    Les autorisations accordées sur des cellules spécifiques ne peuvent pas être supérieures à celles accordées à un rôle de base de données sur l'ensemble du cube. Supposons qu'un rôle de base de données ait une autorisation de lecture/écriture sur une cellule et qu'il ne dispose que d'une autorisation de lecture sur le cube. Dans ce cas, le rôle de base de données n'a pas d'autorisation de lecture/écriture sur les données de la cellule, mais il dispose d'une autorisation de lecture.

  • L'accès aux données de la cellule ne donne pas accès aux données de la dimension.
    Bien que le rôle de base de données puisse accéder aux données de la cellule, il ne peut pas accéder aux données de la dimension s'il n'a pas d'autorisations de lecture ou de lecture/écriture séparées sur les données de la dimension. L'accès aux données du cube peut restreindre l'accès aux attributs de la dimension auxquels le rôle de base de données peut accéder, mais ne s'étend pas aux attributs de la dimension auxquels le rôle de base de données n'a pas accès.

  • Le refus d'accès aux données de la cellule ne rend pas la cellule invisible pour un utilisateur.
    Les autorisations d'accès aux données d'une cellule ne déterminent pas si un rôle de base de données peut voir une cellule, mais indiquent si le rôle peut voir le contenu de la cellule. Si un rôle de base de données n'a pas accès aux données d'une cellule, la cellule reste visible dans les résultats d'une requête. Toutefois, la cellule contient la valeur #N/A au lieu de la valeur réelle de la cellule. La valeur #N/A apparaît dans la cellule, à moins que l'application cliente traduise la valeur ou qu'une autre valeur soit spécifiée en définissant la propriété Secured Cell Value dans la chaîne de connexion.

    Si vous ne voulez pas que la cellule apparaisse dans les résultats, vous devez limiter les membres (dimensions, attributs de dimension et membres des attributs de dimension) visibles. Pour plus d'informations, consultez Octroi d'accès à une dimension et Octroi d'accès personnalisés aux données d'une dimension.

Définition de l'autorisation de lecture des données des cellules

Les cellules sur lesquelles un rôle de base de données dispose d'une autorisation de lecture sont visibles par les membres du rôle. Ces cellules sont visibles, même si elles sont dérivées de cellules sur lesquelles le rôle de base de données ne dispose d'aucune autorisation d'accès.

Supposons qu'il existe la mesure calculée Profit qui est dérivée des cellules des mesures Sales et Cost. Si un rôle de base de données dispose d'une autorisation de lecture sur les cellules Profit, la mesure est visible, même si le rôle de base de données ne dispose pas d'autorisation sur les cellules des mesures Sales ou Cost.

Notes

Si un rôle de base de données dispose d'une autorisation de lecture sur un sous-ensemble de cellules d'un cube et que le rôle n'a pas une expression MDX qui spécifie les cellules sur lesquelles les autorisations de lecture sont accordées, le rôle de base de données ne dispose pas d'autorisation de lecture sur les cellules du cube. La raison en est que l'ensemble alloué par défaut est un ensemble vide quand Analysis Services résout un sous-ensemble de cellules de cube.

Pour accorder des autorisations d'accès à un membre d'une dimension, l'utilisateur doit être membre du rôle de serveur Analysis Services ou membre d'un rôle de base de données Analysis Services disposant des autorisations Contrôle total (Administrateur).

Pour permettre à un rôle de base de données d'accéder en lecture aux données des cellules

  1. Dans SQL Server Management Studio, connectez-vous à l'instance Analysis Services, développez Rôles pour la base de données appropriée dans l'Explorateur d'objets, puis cliquez sur un rôle de base de données (ou créez un rôle de base de données).

  2. Cliquez sur Données des cellules du cube dans le volet Sélectionner une page, sélectionnez le cube dans la liste Cube, puis activez la case à cocher Activer les autorisations de lecture.

    Si aucun membre n'est entré dans la zone Autoriser la lecture du contenu du cube, toutes les cellules du cube sont visibles.

  3. Pour accorder l'accès à certains membres, entrez l'expression MDX des cellules du cube dans la zone Autoriser la lecture du contenu du cube. Aucune autre cellule du cube ne sera visible.

    Pour créer l'expression MDX, à côté de Modifier MDX, cliquez sur le bouton Parcourir, puis utilisez la fenêtre Générateur MDX qui s'affiche pour créer l'expression MDX.

    Pour des exemples d'expressions MDX utilisées pour définir les autorisations sur les données des cellules, consultez Utilisation d'expressions MDX pour définir les autorisations sur les données des cellules.

Définition d'une autorisation de lecture du contingent sur les données des cellules

Les cellules sur lesquelles un rôle de base de données dispose d'une autorisation de lecture du contingent sont visibles uniquement si les conditions suivantes sont vraies :

  • Les cellules ayant une autorisation de lecture du contingent ne sont pas dérivées d'autres cellules.

  • Les cellules ayant une autorisation de lecture du contingent sont issues d'autres cellules, mais le rôle de base de données dispose d'une autorisation de lecture sur toutes les cellules à partir desquelles la cellule est dérivée.

Par exemple, un rôle de base de données a une autorisation de lecture du contingent sur les cellules Profit. Les cellules Profit sont dérivées des mesures Sales et Cost. Dans ce cas, les cellules Profit sont visibles uniquement si le rôle de base de données dispose d'une autorisation de lecture pour les mesures Sales et Cost. Si le rôle de base de données dispose d'une autorisation de lecture du contingent sur les cellules Cost et que la mesure Cost est issue d'autres cellules, les cellules Profit sont visibles uniquement si le rôle de base de données a une autorisation de lecture sur les cellules à partir desquelles la mesure Cost est dérivée. Par conséquent, avec l'autorisation de lecture du contingent, une chaîne de contingences peut être créée lorsqu'une cellule est dérivée d'autres cellules, qui sont elles-mêmes dérivées d'autres cellules, et ainsi de suite.

Notes

Si un rôle de base de données dispose des autorisations de lecture et de lecture du contingent sur une cellule, le rôle a une autorisation de lecture sur la cellule.

Notes

Si un rôle de base de données dispose d'une autorisation de lecture du contingent sur un sous-ensemble de cellules d'un cube et que le rôle n'a pas une expression MDX qui spécifie les cellules sur lesquelles les autorisations de lecture du contingent sont accordées, le rôle de base de données ne dispose pas d'autorisation de lecture du contingent sur les cellules du cube. La raison en est que l'ensemble alloué par défaut est un ensemble vide quand Analysis Services résout un sous-ensemble de cellules de cube.

Pour accorder des autorisations d'accès à un membre dans une dimension, l'utilisateur doit être membre du rôle de serveur Analysis Services ou membre d'un rôle de base de données Analysis Services disposant des autorisations Contrôle total (Administrateur).

Pour accorder à un rôle de base de données un accès de lecture du contingent sur les données des cellules

  1. Dans SQL Server Management Studio, connectez-vous à l'instance Analysis Services, développez Rôles pour la base de données appropriée dans l'Explorateur d'objets, puis cliquez sur un rôle de base de données (ou créez un rôle de base de données).

  2. Cliquez sur Données des cellules du cube dans le volet Sélectionner une page, sélectionnez le cube dans la liste Cube, puis activez la case à cocher Activer les autorisations de lecture du contingent.

  3. Dans la zone Autoriser la lecture du contingent de contenu des cellules selon la sécurité des cellules, entrez une expression MDX qui identifie les cellules sur lesquelles le rôle de base de données a des autorisations de lecture du contingent.

    Pour créer l'expression MDX, à côté de Modifier MDX, cliquez sur le bouton Parcourir, puis utilisez la fenêtre Générateur MDX qui s'affiche pour créer l'expression MDX.

    Pour des exemples d'expressions MDX utilisées pour définir les autorisations sur les données des cellules, consultez Utilisation d'expressions MDX pour définir les autorisations sur les données des cellules.

Définition de l'autorisation de lecture/écriture sur les données des cellules

Les cellules sur lesquelles un rôle de base de données a des autorisations de lecture/écriture sont visibles et actualisables par les membres du rôle de base de données dès lors que les membres ont des autorisations d'écriture/lecture sur le cube lui-même. Les autorisations accordées au niveau des cellules ne peuvent pas être supérieures à celles accordées au niveau du cube.

Notes

Si un rôle de base de données dispose d'autorisations de lecture/écriture sur un sous-ensemble de cellules d'un cube et que le rôle n'a pas une expression MDX qui spécifie les cellules sur lesquelles les autorisations de lecture/écriture sont accordées, le rôle de base de données ne dispose pas d'autorisation de lecture/écriture sur les cellules du cube. La raison en est que l'ensemble alloué par défaut est un ensemble vide quand Analysis Services résout un sous-ensemble de cellules de cube.

Pour accorder ou refuser des autorisations d'accès à des cellules spécifiques, un utilisateur doit être membre du rôle de serveur Analysis Services ou d'un rôle de base de données Analysis Services ayant les autorisations Contrôle total (Administrateur).

Pour permettre à un rôle de base de données d'accéder en lecture/écriture aux données des cellules

  1. Dans SQL Server Management Studio, connectez-vous à l'instance Analysis Services, développez Rôles pour la base de données appropriée dans l'Explorateur d'objets, puis cliquez sur un rôle de base de données (ou créez un rôle de base de données).

  2. Cliquez sur Données des cellules du cube dans le volet Sélectionner une page, sélectionnez le cube dans la liste Cube, puis activez la case à cocher Activer les autorisations de lecture/écriture.

  3. Dans la zone Autoriser la lecture et l'écriture du contenu du cube, entrez une expression MDX qui identifie les cellules sur lesquelles le rôle de base de données a des autorisations de lecture/écriture.

    Pour créer l'expression MDX, à côté de Modifier MDX, cliquez sur le bouton Parcourir, puis utilisez la fenêtre Générateur MDX qui s'affiche pour créer l'expression MDX.

    Pour des exemples d'expressions MDX utilisées pour définir des autorisations sur les données des cellules, consultez Utilisation d'expressions MDX pour définir les autorisations sur les données des cellules.