Sécurisation des modèles

Sur un serveur de rapports, les modèles de rapport sont utilisés comme sources de données pour la création et l'utilisation de rapports ad hoc. Vous pouvez sécuriser les modèles de rapport de trois façons : via l'espace de noms de dossier du serveur de rapports, la sécurité des éléments d'un modèle et la sécurité de base de données.

Étant donné que la sécurité des modèles de rapport est multicouche, un utilisateur qui peut visualiser un modèle dans la hiérarchie des dossiers peut rencontrer d'autres restrictions qui imposent des limites quant à l'utilisation de ce modèle au moment de la conception et au moment de l'exécution. La possibilité d'utiliser un modèle en tant que source de données de rapport dépend des facteurs suivants :

  • La sécurité basée sur les rôles associée à un modèle (en d'autres termes, la possibilité de visualiser un modèle dans la hiérarchie des dossiers du serveur de rapports).

  • La sécurité basée sur les rôles associée au rapport qui utilise le modèle comme source de données. Si un utilisateur ne peut pas accéder au rapport, il peut ne pas être en mesure de visualiser les données fournies par le modèle (dans Reporting Services, les données issues d'un modèle ne sont visualisables que dans les rapports ; les applications tierces peuvent présenter les données de modèle différemment).

  • La sécurité des éléments du modèle.

  • La sécurité de la base de données au niveau des vues, des tables ou des colonnes.

Sécurisation d'un modèle de rapport dans l'espace de noms des dossiers

Comme pour tous les éléments stockés sur un serveur de rapports, vous pouvez définir des attributions de rôles de niveau élément qui déterminent si un utilisateur peut visualiser ou gérer un modèle de rapport.

  • Les utilisateurs habilités à afficher un modèle peuvent le visualiser dans la hiérarchie des dossiers du serveur de rapports, lire une quantité limitée d'informations sur le modèle dans la page Propriétés générales (par exemple, sa date de création ou de modification) et interroger le modèle en cliquant sur les liens d'un rapport ad hoc qui utilise le modèle comme source de données.

  • Les utilisateurs habilités à gérer un modèle peuvent supprimer, renommer et mettre à jour celui-ci. En règle générale, les tâches de gestion de modèle requièrent également la possibilité de publier de nouveaux modèles, mais celle-ci est en réalité accordée par le biais d'attributions de rôles sur les dossiers, et ces attributions déterminent si l'utilisateur peut ajouter des éléments aux modèles.

Les utilisateurs habilités à visualiser un modèle publié ne peuvent pas l'ouvrir directement pour consulter son contenu ou le télécharger sur le système de fichiers. Au moment de l'exécution, la totalité de l'interaction avec le modèle de rapport est réalisée par le biais du rapport qui l'utilise.

Sécurisation des éléments d'un modèle

La sécurité des éléments d'un modèle vous permet de contrôler l'accès à des parties spécifiques de celui-ci. Pour configurer la sécurité des éléments de modèles, utilisez SQL Server Management Studio. Après avoir activé la sécurité des éléments d'un modèle, vous pouvez créer des attributions de rôles sur des nœuds spécifiques dans l'espace de noms du modèle. Pour plus d'informations, consultez Page Sécurité de l'élément de modèle (Gestionnaire de rapports).

Un espace de noms de modèle de rapport se présente sous la forme d'une structure hiérarchique qui comprend un nœud racine, des entités, des rôles de modèle et des champs. Cette structure comprend également des dossiers et des perspectives qui vous permettent d'organiser les éléments du modèle (mais pas de les sécuriser). Lorsque vous visualisez le modèle dans Management Studio, vous pouvez parcourir la structure hiérarchique et spécifier des attributions de rôles à différents niveaux. Vous pouvez définir des attributions de rôles sur le nœud racine d'un modèle de rapport pour contrôler l'accès à la totalité du modèle ou sur des parties d'un modèle pour associer des autorisations d'accès spécifiques à différentes branches. Comme dans le cas de la sécurité de l'espace de noms des dossiers du serveur de rapports, l'espace de noms du modèle assure l'héritage de la sécurité pour les éléments situés en aval de l'arborescence.

Par défaut, la sécurité des éléments d'un modèle est désactivée. Lorsque cela est le cas, toutes les autorisations d'affichage des données représentées par le modèle sont déterminées par les attributions de rôles définies sur le modèle et sur le rapport dans la hiérarchie des dossiers du serveur de rapports.

La sécurité des éléments d'un modèle est transparente pour l'utilisateur. Si un utilisateur n'a pas accès à une branche particulière de la hiérarchie du modèle, cette partie du modèle ne lui est pas présentée dans le rapport. Elle ne peut pas être utilisée pour l'exploration de données, ni pour retourner des données dans un rapport. Grâce à la sécurité des éléments d'un modèle, le serveur de rapports modifie la requête envoyée à la source de données afin d'exclure toute partie du modèle à laquelle l'utilisateur n'a pas accès.

Sécurisation des modèles par le biais de la sécurité de la base de données

La sécurité de la base de données fournit la troisième couche de sécurité dans un rapport piloté par modèle. Si vous restreignez l'accès aux tables ou aux colonnes, la base de données retourne une erreur d'accès refusé pour tous les accès non autorisés. Si vous incluez dans le modèle des tables ou des colonnes auxquelles s'applique la sécurité de la base de données et qu'un utilisateur accède à un élément de modèle correspondant à une table ou à une colonne qu'il n'est pas autorisé à visualiser, un message d'erreur de base de données est retourné. Bien que la sécurité de la base de données au niveau des tables ou des colonnes soit nécessaire dans certains scénarios, il est important de prendre en considération son impact sur la navigation dans les rapports ad hoc. Lorsqu'un utilisateur obtient un message d'erreur de base de données pendant qu'il parcourt un rapport, il doit revenir sur ses pas jusqu'à la partie du modèle à laquelle il a accès.

Notes

Si vous recourez à la sécurité de la base de données pour que seuls certains utilisateurs soient autorisés à lire des tables ou des valeurs de colonne spécifiques, veillez à configurer la source de données de manière à utiliser la sécurité intégrée de Windows.

Éléments de modèle sécurisables

Utilisez Management Studio pour sécuriser les parties suivantes d'un modèle :

  • nœud racine

  • dossiers

  • entités

  • rôles de modèle (le terme « rôle » désigne la relation entre les entités)

  • champs

Vous ne pouvez pas sécuriser les perspectives dans leur ensemble, mais vous pouvez sécuriser les éléments du modèle au sein d'une perspective spécifique. La sécurité est héritée en fonction de la sécurité de l'élément du modèle. Par exemple, si l'élément du modèle n'est accessible qu'aux administrateurs dans le modèle, seuls ceux-ci peuvent accéder à l'élément lorsqu'il apparaît dans la perspective.

La sécurité du modèle de rapport est indépendante de la sécurité que vous définissez sur la hiérarchie des dossiers du serveur de rapports et au niveau du système. Le nœud racine d'un modèle n'est pas accessible ou sécurisé par le biais de la hiérarchie des dossiers.

Masquage des éléments du modèle

Pour limiter l'accès, au lieu de recourir à des attributions de rôles, vous pouvez utiliser la propriété Hidden afin d'empêcher les utilisateurs de visualiser des parties d'un modèle. Si vous souhaitez qu'aucun utilisateur ne puisse visualiser un élément du modèle, dans le Générateur de modèles, attribuez la valeur true à la propriété Hidden de l'élément. Le masquage d'un élément ne le supprime pas des relations ou des calculs du modèle. Par exemple, si vous masquez un champ utilisé dans une expression, le champ fait toujours partie de celle-ci même si les utilisateurs ne peuvent pas le visualiser. Le masquage d'un élément vaut pour tous les utilisateurs. Si vous souhaitez définir une visibilité et un accès spécifiques pour différents utilisateurs ou groupes, sécurisez l'élément à l'aide d'attributions de rôles plutôt que de la propriété Hidden.

Sécurisation des éléments d'un modèle de rapport

Vous pouvez sécuriser des éléments dans un modèle à partir du Gestionnaire de rapports. Pour sécuriser les éléments du modèle, vous devez déployer le modèle de rapport sur le serveur de rapports.

  1. Dans le Gestionnaire de rapports, naviguez jusqu'au dossier qui contient le modèle.

  2. Pointez votre souris sur le nom du modèle, puis cliquez sur la flèche pour ouvrir le menu et sélectionnez Sécurité.

  3. Dans la page Propriétés du modèle, cliquez sur Sécurité de l'élément de modèle.

  4. Activez la case à cocher Sécuriser les éléments de modèles de manière indépendante pour ce modèle.

  5. Sélectionnez le nœud racine. Une attribution de rôle est requise sur le nœud racine.

  6. Cliquez sur Affecter l'autorisation d'accès en lecture aux utilisateurs et groupes suivants.

  7. Tapez la liste des utilisateurs ou des groupes, en les séparant par un point-virgule ';'.

  8. Cliquez sur Appliquer.

  9. Naviguez jusqu'à l'entité, la relation, le champ ou le dossier suivant à sécuriser. Répétez les étapes 6 à 8.