IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SSAS Discussion :

Questions sur les rôles


Sujet :

SSAS

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2012
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 30
    Points : 22
    Points
    22
    Par défaut Questions sur les rôles
    Bonjour,

    Je reviens encore une fois vers vous mais cette fois avec une question plus "fonctionnelle".

    Je souhaite mettre en place un système de rôles, ou chaque utilisateur aurai un rôle. Ce qui donnera accès
    aux utilisateurs seulement aux données dont ils ont les droits.

    Je possède une base de données ou sont répertoriés les users ainsi que leurs droits. Quelle est pour vous la manière la plus simple de synchroniser les rôles du cube avec cette base?

    Je souhaiterai aussi que si un utilisateur créer un fichier Excel avec ses droits, et qu'il passe ce fichier a un second (qui a moins de droits), alors le second puisse quand même rafraichir des données auxquelles il n'aurai pas eu accès normalement.
    Pour cela, est-il possible "d'embarquer" un rôle dans un fichier, de manière a ce que même s'il soit partage avec d'autres personnes, elles aient les mêmes droits que la personne qui a créé le fichier?


    D'avance merci

  2. #2
    Membre habitué Avatar de scharly3
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Novembre 2008
    Messages
    121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Novembre 2008
    Messages : 121
    Points : 144
    Points
    144
    Par défaut
    Bonjour,

    Il est possible de réaliser cette action assez simplement avec SSIS et le composant Execute DDL Task qui permet d’exécuter du XMLA.

    Il s'agit donc de récupérer les valeurs de ta table avec une SQL Task de parcourir le Dataset à l'aide d'une boucle par exemple et de lancer un script XMLA avec en paramètre les valeurs de ta table.


    Voici un exemple de script que j'utilise actuellement:

    Création du rôle:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    "<Create xmlns=\"http://schemas.microsoft.com/analysisservices/2003/engine\">
        <ParentObject>
            <DatabaseID>"+ @[User::DatabaseID] +"</DatabaseID>
        </ParentObject>
        <ObjectDefinition>
            <Role xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:ddl2=\"http://schemas.microsoft.com/analysisservices/2003/engine/2\" xmlns:ddl2_2=\"http://schemas.microsoft.com/analysisservices/2003/engine/2/2\" xmlns:ddl100_100=\"http://schemas.microsoft.com/analysisservices/2008/engine/100/100\" xmlns:ddl200=\"http://schemas.microsoft.com/analysisservices/2010/engine/200\" xmlns:ddl200_200=\"http://schemas.microsoft.com/analysisservices/2010/engine/200/200\">
                <ID>"+ @[User::RoleName] +"</ID>
                <Name>"+ @[User::RoleName] +"</Name>
            </Role>
        </ObjectDefinition>
    </Create>"
    Création des permissions:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    "<Create AllowOverwrite=\"true\" xmlns=\"http://schemas.microsoft.com/analysisservices/2003/engine\">
      <ParentObject>
        <DatabaseID>"+@[User::DatabaseID]+"</DatabaseID>
        <CubeID>"+@[User::CubeID]+"</CubeID>
      </ParentObject>
      <ObjectDefinition>
        <CubePermission xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\">
          <ID>"+@[User::RoleName]+"</ID>
          <Name>"+@[User::RoleName]+"</Name>
          <RoleID>"+ @[User::RoleName] +"</RoleID>
          <Read>Allowed</Read>
          <ReadSourceData>None</ReadSourceData>
        </CubePermission>
      </ObjectDefinition>
    </Create>"
    Mise en place des droits:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    "<Alter AllowCreate=\"true\" ObjectExpansion=\"ObjectProperties\" xmlns=\"http://schemas.microsoft.com/analysisservices/2003/engine\">
      <Object>
        <DatabaseID>"+ @[User::DatabaseID] +"</DatabaseID>
        <CubeID>"+ @[User::CubeID] +"</CubeID>
        <CubePermissionID>"+@[User::RoleName]+"</CubePermissionID>
      </Object>
      <ObjectDefinition>
        <CubePermission xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:ddl2=\"http://schemas.microsoft.com/analysisservices/2003/engine/2\" xmlns:ddl2_2=\"http://schemas.microsoft.com/analysisservices/2003/engine/2/2\" xmlns:ddl100_100=\"http://schemas.microsoft.com/analysisservices/2008/engine/100/100\" xmlns:ddl200=\"http://schemas.microsoft.com/analysisservices/2010/engine/200\" xmlns:ddl200_200=\"http://schemas.microsoft.com/analysisservices/2010/engine/200/200\">
          <ID>"+@[User::RoleName]+"</ID>
          <Name>"+@[User::RoleName]+"</Name>
          <RoleID>"+@[User::RoleName]+"</RoleID>
          <Read>Allowed</Read>
          <ReadSourceData>None</ReadSourceData>
          <DimensionPermissions>
            <DimensionPermission>
              <CubeDimensionID>A - Market Definitions</CubeDimensionID>
              <Read>Allowed</Read>
              <AttributePermissions>
                <AttributePermission>
                  <AttributeID>Client Name</AttributeID>
                  <AllowedSet>{[A - Market Definitions].[Customer].&amp;["+ (DT_WSTR, 10) @[User::ClientId] +"]}</AllowedSet>
                  <DefaultMember>[A - Market Definitions].[Customer].&amp;["+ (DT_WSTR, 10) @[User::ClientId] +"]</DefaultMember>
                </AttributePermission>
              </AttributePermissions>
            </DimensionPermission>
          </DimensionPermissions>
        </CubePermission>
      </ObjectDefinition>
    </Alter>"
    C'est aussi possible (et mieux d'ailleurs) de la faire en AMO.

    Pour cela, est-il possible "d'embarquer" un rôle dans un fichier, de manière a ce que même s'il soit partage avec d'autres personnes, elles aient les mêmes droits que la personne qui a créé le fichier?
    Suite à un grand débat sur le sujet, il est possible de spécifier un rôle à la connexion, mais à première vue, seul les administrateurs OLAP ou les membres du rôle auront accès aux données.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2012
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 30
    Points : 22
    Points
    22
    Par défaut
    D'accord merci, je vais essayer ca et je vous dirai si ca a marcher,

    merci en tout cas

Discussions similaires

  1. [2.x] question sur les rôles
    Par dukoid dans le forum Symfony
    Réponses: 18
    Dernier message: 07/10/2014, 17h50
  2. [UC] Clarification sur les rôles utilisateurs / Questions générales
    Par MakaveliFr dans le forum Cas d'utilisation
    Réponses: 5
    Dernier message: 08/11/2007, 09h27
  3. Question sur les rôles
    Par freud dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 01/10/2007, 11h24
  4. Question sur les handles et les couleurs...
    Par MrDuChnok dans le forum C++Builder
    Réponses: 7
    Dernier message: 29/10/2002, 08h45
  5. question sur les message box !
    Par krown dans le forum Langage
    Réponses: 7
    Dernier message: 02/08/2002, 16h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo