Club Power BI

Please login or click SIGN UP FOR FREE to create your PowerBIUG account to join this user group.
  • 1.  Configure Row Level Security with OR condition on 4 dimensions

    Posted Jun 10, 2021 04:10 AM
    Bonjour,

    Nous avons une table de fait relié à 4 dimensions identiques suivant que l'on soit donneur d'ordre , le demandeur, le garant ou le bénéficiaire.

    Jusqu'à maintenant on avait une table de sécurité qui s'appliquait sur une des 4 tables, pas de soucis.

    Comment faire au mieux la sécurité sur les 4 axes avec comme condition un OU.

    ex :
    table secu : user1@toto.com a accès a la div 350
    Soit la dimension demandeur contient 350 ou la dimension garant  contient 350 etc ...

    La RLS sur la table de fait ? du style ?

    CONTAINS('SecuUser', 'SecuUser'[Upn], USERPRINCIPALNAME(), 'SecuUser'[Code], 'Fact'[Codedemandeur])
    || CONTAINS('SecuUser', 'SecuUser'[Upn], USERPRINCIPALNAME(), , 'SecuUser'[Code], 'Fact'[Codegarant)
    || CONTAINS('SecuUser', 'SecuUser'[Upn], USERPRINCIPALNAME(), , 'SecuUser'[Code], 'Fact'[CodeBénéficiaire)
    || CONTAINS('SecuUser', 'SecuUser'[Upn], USERPRINCIPALNAME(), , 'SecuUser'[Code], 'Fact'[CodeDonneurOrdre)


    Perf ?
    Changement de modélisation ?

    Merci pour votre aide et conseil.

    Bonne journée.

    ------------------------------
    STEPHANE DELEE
    Microsoft BI
    ------------------------------


  • 2.  RE: Configure Row Level Security with OR condition on 4 dimensions

    Silver Contributor
    Posted Jun 11, 2021 10:54 AM
    Bonjour  Stéphane

    Tu peux éventuellement créer  4 tables de sécurité rattachées en  cardinalité  (*  -  1)   & double sens vers tes  dimensions  (elle même reliée à ta table des faits)

    • 4 rôles à créer  avec le filtre DAX & userprincipalname() à placer sur tes codes métiers (code demandeur ? etc...)
    • Un user fera parti  de telle ou telle table de paramétrage sécurité
    • Si un user fait parti de 2 tables  de sécurité alors la combinaison des 2 filtres est appliquée (intersection) 
    • Pas de hiérarchies ici  avec 4 dimensions axées sur la table des faits

      CDT


    ------------------------------
    christophe hervouet
    Bi consultant /Lead tech power bi / ms bi et azure
    aaaa
    ------------------------------



  • 3.  RE: Configure Row Level Security with OR condition on 4 dimensions

    Posted Oct 20, 2021 08:30 AM

    Bonjour @christophe hervouet,

    Merci pour ta reponse. J'avais réussi avec une seule table de sécurité a faire un ou sur les 4 dim.
    Maintenant j'ai une nouvelle problématique et même en essayant ta solution je n'y arrive pas, ou ai je oublié qqchose ?.
    Je rajoute 2 dim supplémentaires identique aux 4 autres mais celle ci relié a une autre table de fait.​

    et je souhaiterai garder toujours le OU sur les 4 premières reliées à la table de fait 1 et rajouter un OU entre les 2  autres dim sur la table de fait 2.
    Exemple dans les fichiers ci dessous :
    L'utilisateur titi@toto.fr doit pouvoir voir les lignes
     - ou y a au moins une fois du rose sur les 4 dim relié a la table de fait 1
     - ou y a au moins une fois du rose sur les 2 dim relié a la table de fait 2 

    Sur le fichier test_rls_OR_2_Fact , si je ne selectionne que la RLS sur les 4 dim :


    cela fonctionne,excepté avec une couleur non existante qui me renvoit la ligne du coupsi je prends tous les roles cela ne marche plus.

    Merci pour votre aide.

    Stephane



    ------------------------------
    STEPHANE DELEE
    Microsoft BI
    ------------------------------

    Attachment(s)



  • 4.  RE: Configure Row Level Security with OR condition on 4 dimensions

    Posted 28 days ago
    j'ai trouvé
    en croisant les 5 premieres dim ( dans le vrai projet ) avec les 2 autres soit 10 roles



    ------------------------------
    STEPHANE DELEE
    Microsoft BI
    ------------------------------