Privilèges analytiques dans SAP HANA : Comment créer ?

⚡ Résumé intelligent

Privilèges analytiques dans SAP HANA ajoute une autorisation au niveau des lignes en plus des privilèges d'objet, de sorte que deux utilisateurs consultant la même vue d'informations ne voient que les enregistrements autorisés par leurs restrictions. SAP Hana Studio.

  • (I.e. Objectif : Un privilège d'objet ouvre une vue complète, tandis qu'un privilège analytique filtre les lignes renvoyées par la vue.
  • ☑️ Portée: Les vues d'attributs, les vues analytiques et les vues de calcul peuvent chacune être protégées par un privilège analytique.
  • Restrictions: Les valeurs d'un même attribut se combinent avec l'opérateur OU, et les restrictions portant sur différents attributs se combinent avec l'opérateur ET.
  • 🧪 Exemple : Un privilège sur la vue de calcul CA_FI_LEDGER limite l'utilisateur ABHI_TEST à la société 1000.
  • Mission: Cette restriction s'applique uniquement après validation, activation, attribution à l'utilisateur ou au rôle et déploiement.
  • 📈 Direction: Les privilèges basés sur XML sont obsolètes ; les nouvelles restrictions sont donc formulées sous forme de privilèges analytiques SQL.

Privilèges analytiques limitant l'accès aux données au niveau des lignes dans SAP HANA

Que sont les privilèges analytiques dans SAP HANA ?

Les privilèges analytiques limitent l'accès d'un utilisateur aux données qu'il est autorisé à consulter ; ils constituent donc un élément essentiel de SAP Sécurité HANA.

Les privilèges SQL accordent une autorisation au niveau de l'objet, et non au niveau de l'enregistrement. Un utilisateur disposant du droit SELECT sur une vue peut lire toutes ses lignes. Lorsqu'une restriction au niveau de la ligne est nécessaire, un privilège analytique est utilisé.

Les privilèges analytiques permettent d'accéder aux informations suivantes.

Un privilège analytique est créé ci-dessous et attribué à l'utilisateur « ABHI_TEST », afin que celui-ci puisse consulter uniquement les données de l'entreprise dont la valeur est égale à 1000. Les deux privilèges sont nécessaires conjointement : le privilège d'accès à l'objet permet d'ouvrir la vue, tandis que le privilège analytique détermine les lignes à afficher.

Comment créer un privilège analytique dans SAP HANA

Les six étapes ci-dessous se déroulent en SAP Studio Hana, de la création du privilège à son test avec un deuxième utilisateur.

Étape 1) Accédez à Privilèges analytiques. Cliquez avec le bouton droit sur le package de modélisation, puis choisissez Nouveau → Privilèges analytiques, comme indiqué ci-dessous.

Nouvelle option Privilèges analytiques dans le menu contextuel du package de modélisation

Étape 2) Une nouvelle fenêtre contextuelle apparaît. Saisissez les informations d'autorisation analytique indiquées ci-dessous.

  1. Saisissez le nom et l'étiquette du privilège analytique.
  2. Le nom du paquet est sélectionné automatiquement.
  3. L'option de sélection crée un nouveau privilège.

Nouvelle boîte de dialogue de privilège analytique avec les champs nom, étiquette et package

L'étape suivante consiste à afficher l'éditeur de privilèges analytiques pour ajouter et modifier les privilèges.

Étape 3) Cliquez sur le bouton « OK ». L’éditeur de privilèges analytiques s’ouvre et le modèle de référence est sélectionné en premier.

  1. La section Général affiche le nom et l'étiquette.
  2. Cliquez sur le bouton « Ajouter » dans la section Modèles de référence, comme indiqué ci-dessous.
  3. Sélectionnez la vue de calcul (CA_FI_LEDGER) créée précédemment.

Ajouter un bouton dans la section Modèles de référence de l'éditeur de privilèges analytiques

La validité et la restriction des attributs sont alors définies dans le même éditeur.

  1. Cliquez sur le bouton Ajouter pour créer la validité du privilège.
  2. Attribuer la validité du privilège.
  3. Cliquez sur le bouton Ajouter pour sélectionner l'attribut qui comporte la restriction.
  4. Sélectionnez l'attribut Société.
  5. Cliquez sur le bouton Ajouter pour attribuer une valeur à cet attribut.
  6. Attribuez la valeur en sélectionnant le type ou l'opérateur et la valeur. Ici, l'utilisateur est limité aux données de la vue de calcul de la société 1000 uniquement, comme indiqué ci-dessous.

Éditeur de privilèges analytiques avec modèle de référence, validité et restriction d'entreprise

Validez et activez le privilège analytique. Il est alors créé dans le dossier « Privilèges analytiques » du package « Modélisation », comme indiqué ci-dessous.

Privilège analytique activé répertorié dans le dossier Privilèges analytiques

Étape 4) Attribuez le privilège analytique à l'utilisateur « ABHI_TEST », qui possède déjà des privilèges sur le package de modélisation. Double-cliquez sur l'utilisateur « ABHI_TEST » sous Sécurité -> Utilisateurs.

  1. Sélectionnez l'onglet Privilèges analytiques.
  2. Cliquez sur le bouton "+".
  3. Une fenêtre contextuelle « Sélectionner les privilèges analytiques » s’affiche. Saisissez le nom du privilège analytique créé précédemment.
  4. Sélectionnez le privilège analytique.
  5. Cliquez sur le bouton OK, comme indiqué ci-dessous.

Sélectionnez la fenêtre contextuelle Privilèges analytiques sur l'écran de gestion des utilisateurs

Le privilège analytique est ajouté à l'utilisateur, comme indiqué ci-dessous.

Onglet Privilèges analytiques de l'utilisateur ABHI_TEST après l'ajout du privilège

Étape 5) Déployez la modification pour l'utilisateur en cliquant sur le bouton Déployer. Un message s'affiche indiquant que l'utilisateur « ABHI_TEST » a été modifié, comme illustré ci-dessous.

Message de confirmation de déploiement indiquant que l'utilisateur ABHI_TEST a été modifié

Étape 6) Vérifiez les privilèges analytiques. Connectez-vous en tant qu’« ABHI_TEST » depuis le système HANAUSER pour confirmer que l’affectation fonctionne.

  1. Sélectionnez le système actuel HDB (HANAUSER) et cliquez dessus avec le bouton droit.
  2. Sélectionnez « Ajouter un système avec un utilisateur différent », puis saisissez le nom d'utilisateur et le mot de passe pour « ABHI_TEST », comme indiqué ci-dessous.
  3. Un système HDB (ABHI_TEST) est ajouté à la liste des systèmes.

L'option « Ajouter un système avec un utilisateur différent » permet de se connecter en tant que ABHI_TEST.

L'utilisateur ABHI_TEST n'a pas un accès complet aux données de la vue de calcul créée par HANAUSER, car HANAUSER a créé un privilège analytique limitant cette vue à la société 1000 et l'a attribué à ABHI_TEST.

Accédez au dossier Contenu -> sélectionnez le package -> vue de calcul (CA_FI_LEDGER) -> clic droit -> Aperçu des données. L'écran d'aperçu des données s'affiche comme ci-dessous.

Aperçu des données de la vue de calcul limité à la société 1000

Les données affichées dans la vue de calcul sont limitées au code société 1000, ce qui confirme que le privilège analytique est actif pour cet utilisateur.

Comparaison des privilèges analytiques XML et SQL classiques

Il existe deux types de privilèges analytiques, et le choix est important pour tout nouveau développement. L'éditeur présenté ci-dessus crée le privilège classique, basé sur XML. Les privilèges analytiques SQL ont été introduits en SAP HANA 1.0 SPS 10 et exprimez la même restriction qu'une condition de filtre SQL.

Aspect Classique (basé sur XML) privilège analytique SQL
Définition Géré graphiquement dans le modeleur et stocké sous forme d'objet XML de conception. Définie par une condition de filtre SQL, la logique complexe reste ainsi lisible.
Conditions Restrictions d'attributs avec des opérateurs simples. Expressions SQL complètes, y compris les conditions imbriquées et combinées.
Statut Déprécié à compter du SAP HANA 2.0 SPS 02. Recommandé pour chaque nouveau privilège.
Disponibilité Non disponible en SAP HANA Cloud. Pris en charge dans SAP HANA 2.0 et SAP HANA Cloud.

Le SAP HANA Modeler intègre une activité de migration qui convertit les privilèges classiques basés sur XML en privilèges basés sur SQL, évitant ainsi de devoir réécrire manuellement les restrictions existantes. SAP Dans HANA Cloud, ce privilège devient un artefact de conception au sein d'un conteneur HDI et parvient à l'utilisateur via un rôle plutôt que via l'éditeur utilisateur.

Comment les restrictions relatives aux privilèges analytiques sont évaluées

La connaissance de la combinaison des conditions permet d'éviter les restrictions qui ne rapportent soit que trop, soit rien du tout.

  • Plusieurs valeurs répertoriées pour un attribut sont combinées avec une logique OR, donc un utilisateur peut voir l'entreprise 1000 ou l'entreprise 2000.
  • Les restrictions sur différents attributs sont combinées avec une logique ETL'entreprise et le pays doivent donc tous deux correspondre.
  • Lorsqu'un utilisateur détient plusieurs privilèges analytiques sur la même vue, les résultats sont additionnés, ce qui élargit l'accès au lieu de le restreindre.
  • Une restriction statique stocke des valeurs fixes, tandis qu'une restriction dynamique lit les valeurs autorisées au moment de l'exécution à partir d'une procédure, de sorte qu'un seul privilège peut servir plusieurs utilisateurs.

Une vue n'est vérifiée que si sa propriété Apply Privileges spécifie le type de privilège, et cette vérification s'ajoute au privilège d'objet SELECT. Les vues de colonnes générées par l'activation résident dans le schéma _SYS_BIC, et les restrictions effectives d'un utilisateur sont accessibles via la vue système EFFECTIVE_STRUCTURED_PRIVILEGES.

Erreurs courantes liées aux privilèges analytiques et leurs solutions

La plupart des problèmes d'autorisation sur une vue d'information proviennent de l'une des situations ci-dessous.

  • Erreur d'autorisation sur une vue. L'utilisateur possède le privilège analytique mais pas le droit de sélectionner sur la vue de colonne générée ni sur le schéma sous-jacent. Accordez-lui les deux.
  • L'aperçu ne renvoie aucune ligne. L'attribut restreint ne possède aucune valeur correspondante, ou la période de validité du privilège est déjà expirée.
  • La restriction est ignorée. Le privilège a été créé mais n'a jamais été activé, ou la propriété « Appliquer les privilèges » de la vue n'est pas définie.
  • Ce changement est sans effet. La tâche n'a pas été déployée, ou la session utilisateur a démarré avant le déploiement et doit être reconnectée.
  • De toute façon, tout est visible. L'utilisateur détient le droit _SYS_BI_CP_ALL, qui lui confère un accès illimité à toutes les vues d'information, et ne doit pas occuper de rôles de production.

Accordez les privilèges analytiques via des rôles plutôt que directement aux utilisateurs, afin que la même restriction puisse être examinée, transférée et révoquée à un seul endroit. La modélisation du contexte des vues protégées est abordée dans la section suivante : SAP Modélisation HANA et SAP HANA guides.

FAQ

SAP HANA utilise les privilèges système pour les tâches d'administration, les privilèges d'objet pour les tables et les vues, les privilèges de package pour le contenu du référentiel, les privilèges d'application pour les applications XS et les privilèges analytiques pour l'accès au niveau des lignes dans les vues d'informations.

Oui. La section Modèles de référence accepte plusieurs vues d'information, et la même restriction d'attribut s'applique alors à chacune d'elles, à condition que l'attribut restreint existe dans chaque vue répertoriée.

_SYS_BI_CP_ALL est un privilège analytique généré qui accorde un accès illimité à toutes les vues d'information. Pratique pour un modélisateur en environnement de test, il contourne néanmoins la sécurité au niveau des lignes et n'est pas adapté aux rôles de production.

L'apprentissage automatique appliqué aux journaux d'accès permet de profiler les comportements de requêtes normaux et de signaler les comptes qui consultent soudainement des entreprises ou des régions inhabituelles. Ces outils classent les autorisations à risque en vue de leur examen, mais c'est toujours l'administrateur de sécurité qui décide des privilèges à modifier.

GitHub Copilot génère les conditions de filtrage et le code SQL associé à partir d'un court commentaire, ce qui simplifie la gestion des restrictions complexes. Chaque condition générée doit être testée avec des données réelles, car une erreur d'opérateur peut étendre silencieusement les droits d'accès.

SAP HANA Cloud prend uniquement en charge les privilèges d'analyse SQL. Ce privilège est un artefact de conception au sein d'un conteneur HDI ; il est octroyé via un rôle et l'éditeur XML classique de SAP HANA Studio n'est plus disponible.

Non. La restriction est évaluée pour les vues d'information dont la propriété « Appliquer les privilèges » est définie. Une requête sur la table de base est uniquement contrôlée par les privilèges d'objet ; par conséquent, les tables sensibles doivent être exposées via des vues.

Un rôle regroupe des privilèges et constitue le conteneur recommandé pour leur transport et leur examen. Un privilège analytique fait partie de ce regroupement ; l’octroyer directement à un utilisateur rend l’audit ultérieur de cette restriction plus difficile.

Résumez cet article avec :