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

Administration et Installation Discussion :

Mettre en place des droits sur une vue différents de ceux de la table-source ?


Sujet :

Administration et Installation

  1. #1
    Rédacteur/Modérateur

    Avatar de Antoun
    Homme Profil pro
    Architecte décisionnel
    Inscrit en
    octobre 2006
    Messages
    6 209
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : octobre 2006
    Messages : 6 209
    Points : 11 618
    Points
    11 618
    Par défaut Mettre en place des droits sur une vue différents de ceux de la table-source ?
    Hello,

    J'ai une table (SAS 9.2, plateforme BI) contenant les données de tous mes utilisateurs, avec une colonne id_groupe. J'ai créé dessus une vue pour un groupe d'utilisateurs :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    PROC SQL ;
      CREATE VIEW V_GROUPE6 AS 
      SELECT * FROM tableglobale WHERE id_groupe = 6 ;
    QUIT ;
    Ensuite, je retire les droits sur la table pour ne laisser que ceux sur la vue. Et là, patatra, je m'aperçois que la vue est exécutées avec les droits de l'utilisateur, et donc qu'elle ne peut plus accéder à sa table-source.

    Y a-t-il un moyen de mettre en place des vues exécutées avec les droits du créateur (comme c'est habituellement le cas sur les SGBD) ? Voyez-vous une autre solution (à part remplacer ma vue par une infomap) ?
    Antoun
    Expert Essbase, BO, SQL

    La bible d'Essbase, 2ème édition

  2. #2
    Rédacteur

    Homme Profil pro
    SAS ALLIANCE SILVER. Consultant et formateur SAS et Cognos.
    Inscrit en
    avril 2009
    Messages
    2 497
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : SAS ALLIANCE SILVER. Consultant et formateur SAS et Cognos.
    Secteur : Conseil

    Informations forums :
    Inscription : avril 2009
    Messages : 2 497
    Points : 6 064
    Points
    6 064
    Par défaut
    Récupérer le userid de l'utilisateur et fusionner la table source avec une table de correspondance entre les groupes et les userid filtrée avec le &userid ?
    N'oubliez pas de cliquer sur lorsque votre problème est réglé !

  3. #3
    Rédacteur/Modérateur

    Avatar de Antoun
    Homme Profil pro
    Architecte décisionnel
    Inscrit en
    octobre 2006
    Messages
    6 209
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : octobre 2006
    Messages : 6 209
    Points : 11 618
    Points
    11 618
    Par défaut
    Citation Envoyé par datametric Voir le message
    Récupérer le userid de l'utilisateur et fusionner la table source avec une table de correspondance entre les groupes et les userid filtrée avec le &userid ?
    C'était ce que je pensais faire à l'origine. Mais si je retire les droits sur la table-source, la vue ne marche plus...

    A priori, je vais contourner le problème en utilisant une SP jouée par sassrv qui copie les données filtrées (selon la table de correspondance que tu évoques et le &_metauser). Mais s'il y avait un moyen (genre une option que je ne connais pas dans le CREATE VIEW) d'utiliser des vues plutôt que de dupliquer des données, je trouverais ça plus esthétique... (bon, ce n'est pas vital non plus).

    Par exemple, quand je crée une vue dans MySQL, je peux préciser SECURITY=DEFINER ou SECURITY=INVOKER... SAS n'aurait pas un truc de ce genre ?
    Antoun
    Expert Essbase, BO, SQL

    La bible d'Essbase, 2ème édition

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    avril 2009
    Messages
    747
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : avril 2009
    Messages : 747
    Points : 978
    Points
    978
    Par défaut
    salut,

    Pour la sécurité niveau ligne, il faut regarder du coté de SAS Table Server.

    A checker!

    xav

  5. #5
    Rédacteur

    Homme Profil pro
    SAS ALLIANCE SILVER. Consultant et formateur SAS et Cognos.
    Inscrit en
    avril 2009
    Messages
    2 497
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : SAS ALLIANCE SILVER. Consultant et formateur SAS et Cognos.
    Secteur : Conseil

    Informations forums :
    Inscription : avril 2009
    Messages : 2 497
    Points : 6 064
    Points
    6 064
    Par défaut
    un petit oiseau m'a dit il y a quelques temps que le Table Server n'est pas forcément quelque chose à envisager...
    N'oubliez pas de cliquer sur lorsque votre problème est réglé !

  6. #6
    Membre éprouvé
    Profil pro
    Inscrit en
    avril 2009
    Messages
    747
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : avril 2009
    Messages : 747
    Points : 978
    Points
    978
    Par défaut
    mwai, Antoun va nous checker cela ^_^

  7. #7
    Rédacteur/Modérateur

    Avatar de Antoun
    Homme Profil pro
    Architecte décisionnel
    Inscrit en
    octobre 2006
    Messages
    6 209
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : octobre 2006
    Messages : 6 209
    Points : 11 618
    Points
    11 618
    Par défaut
    Citation Envoyé par xav2229 Voir le message
    salut,

    Pour la sécurité niveau ligne, il faut regarder du coté de SAS Table Server.

    A checker!

    xav
    Tu es en train de me dire que le TS permet de filtrer des tables selon le profil de l'utilisateur ? ça simplifierait tout le bordel que j'envisageais de mettre en place !

    Citation Envoyé par datametric Voir le message
    un petit oiseau m'a dit il y a quelques temps que le Table Server n'est pas forcément quelque chose à envisager...
    Quels seraient les risques ?
    Antoun
    Expert Essbase, BO, SQL

    La bible d'Essbase, 2ème édition

  8. #8
    Rédacteur

    Homme Profil pro
    SAS ALLIANCE SILVER. Consultant et formateur SAS et Cognos.
    Inscrit en
    avril 2009
    Messages
    2 497
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : SAS ALLIANCE SILVER. Consultant et formateur SAS et Cognos.
    Secteur : Conseil

    Informations forums :
    Inscription : avril 2009
    Messages : 2 497
    Points : 6 064
    Points
    6 064
    Par défaut
    Chute des perfs...
    N'oubliez pas de cliquer sur lorsque votre problème est réglé !

  9. #9
    Rédacteur/Modérateur

    Avatar de Antoun
    Homme Profil pro
    Architecte décisionnel
    Inscrit en
    octobre 2006
    Messages
    6 209
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : octobre 2006
    Messages : 6 209
    Points : 11 618
    Points
    11 618
    Par défaut
    Citation Envoyé par datametric Voir le message
    Chute des perfs...
    Si ce n'est que ça... mes données-sources vont être autour de 50 000 lignes, donc je pense que ça ne devrait pas être un vrai problème...
    Antoun
    Expert Essbase, BO, SQL

    La bible d'Essbase, 2ème édition

  10. #10
    Membre éprouvé
    Profil pro
    Inscrit en
    avril 2009
    Messages
    747
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : avril 2009
    Messages : 747
    Points : 978
    Points
    978
    Par défaut
    et tu veux controler l'accès de combien de tables?

  11. #11
    Rédacteur/Modérateur

    Avatar de Antoun
    Homme Profil pro
    Architecte décisionnel
    Inscrit en
    octobre 2006
    Messages
    6 209
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : octobre 2006
    Messages : 6 209
    Points : 11 618
    Points
    11 618
    Par défaut
    Citation Envoyé par xav2229 Voir le message
    et tu veux controler l'accès de combien de tables?
    une dizaine
    Antoun
    Expert Essbase, BO, SQL

    La bible d'Essbase, 2ème édition

  12. #12
    Membre éprouvé
    Profil pro
    Inscrit en
    avril 2009
    Messages
    747
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : avril 2009
    Messages : 747
    Points : 978
    Points
    978
    Par défaut
    je n'y croyais pas, j'ai testé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    data WORK.MASTER(read=mdp alter=alter write=secret);
       do group = 'group1', 'group2', 'group3';
          do i = 1 to 10;
             output;
          end;
       end;
    run;
     
    data WORK.GROUP1 / view=WORK.GROUP1;
       set WORK.MASTER(read=mdp);
       where group = 'group1';
    run;
    le mdp est bien masqué:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    DATA VIEW=Work.Group1; 
       DESCRIBE; 
    RUN;
     
    NOTE: DATA step view WORK.GROUP1 is defined as:
     
    data WORK.GROUP1 / view=WORK.GROUP1;
       set WORK.MASTER(read=XXX);
       where group = 'group1';
    run;
    je ne suis qu'un pecheur qui manque de foi

    xav

  13. #13
    Rédacteur/Modérateur

    Avatar de Antoun
    Homme Profil pro
    Architecte décisionnel
    Inscrit en
    octobre 2006
    Messages
    6 209
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : octobre 2006
    Messages : 6 209
    Points : 11 618
    Points
    11 618
    Par défaut
    xav, pourrais-tu expliquer ton code ? l'idée m'a l'air très intéressante, mais je n'y comprends rien
    Antoun
    Expert Essbase, BO, SQL

    La bible d'Essbase, 2ème édition

  14. #14
    Membre éprouvé
    Profil pro
    Inscrit en
    avril 2009
    Messages
    747
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : avril 2009
    Messages : 747
    Points : 978
    Points
    978
    Par défaut
    salut,

    l'idée est de créer des vues par groupe, dans la définition de la vue il y a une clause where pour n'autoriser la lecture uniquement sur les bonnes lignes.

    la lecture directe de MASTER est impossible sans connaitre le mot de passe.

    on stocke le mot de passe dans la vue et les users ne peuvent le voir.

    xav

  15. #15
    Membre averti
    Inscrit en
    janvier 2010
    Messages
    235
    Détails du profil
    Informations forums :
    Inscription : janvier 2010
    Messages : 235
    Points : 372
    Points
    372
    Par défaut map et condition par ligne
    Bonjour,

    Je n'ai jamais testé mais je sais qu'on peut faire ça avec les maps. Le lien Map et sécurité explique pas à pas la procédure.

    Celà doit correspondre à la technique donnée par xav2229 et datamétric car les maps ne sont rien d'autre que des "générateurs" de vue/table.

    Information Map Studio permet de récupérer le code d'une procédure sql créé à partir d'une map. Donc à ta place je créerais une map avec filtrage sur ligne grace à infoMap, je testerais la procédure SQL qui m'intéresse puis j'en récupérerais le code.

    Le problème des droits de lancement est peut-être lié à la politique de sécurité de ton installation. Je suppose que chacun de tes utilisateurs en métadonnées correspond à un compte OS spécifique. D'où des problèmes d'accès aux données liés aux différents comptes propriétaires. Dis moi si je me trompe.

Discussions similaires

  1. Réponses: 7
    Dernier message: 18/07/2010, 19h27
  2. Droits sur une vue
    Par Baquardie dans le forum Administration
    Réponses: 3
    Dernier message: 14/04/2010, 22h41
  3. mettre en place un timeout sur une instruction
    Par grinder59 dans le forum C#
    Réponses: 10
    Dernier message: 04/02/2009, 11h24
  4. [Preferences] Sauvegarde automatique des préférences sur une vue
    Par pistache42 dans le forum Eclipse Platform
    Réponses: 10
    Dernier message: 04/12/2006, 12h32
  5. [MySQL] Perte des droits sur une table ??
    Par Mystic eyes dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 05/07/2006, 17h40

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