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 Oracle Discussion :

GRANT SELECT on table


Sujet :

Administration Oracle

  1. #1
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2008
    Messages
    144
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2008
    Messages : 144
    Par défaut GRANT SELECT on table
    Bonjour,

    -Je dois créer un utilisateur et une vue sur une table d'un autre utilisateur ( c'est OK)

    -Seulement je voudrais que ce nouvel utilisateur ne puisse avoir accès (SELECT) qu'à certaines colonnes de la table de l'autre utilisateur.

    Concrètement je voudrais que l'utilisateur ne puisse pas voir plus de colonnes
    que celles données via la vue.


    Voici une requête que j'ai essayé mais qui ne fonctionne pas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    grant select ("ID1","ID2","NOM","PRENOM","DATNAIS")  ON "USER1"."TABLE1"  TO "USER2";
    Auriez-vous une idée?

    Merci

  2. #2
    Membre expérimenté
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Mai 2012
    Messages
    127
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Mai 2012
    Messages : 127
    Par défaut
    Bonjour,

    Le plus simple est de créer dans le schéma USER1 la vue qui ne sélectionne que les colonnes désirées, et de donner le droit SELECT sur cette vue et non sur la table.

    Une autre solution est de passer par les VPD (en savoir plus ici) pour masquer les colonnes indésirables (et on donne les droits d'accès à la table en entier), mais cela se base sur le Fine-Grained Auditing, qui est une option payante de l'édition Enterprise (vérifiez donc que votre licence vous le permet). Et puis c'est plus compliqué

  3. #3
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2008
    Messages
    144
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2008
    Messages : 144
    Par défaut
    Nous n'avons pas de licence EE.

    la table appartient à USER1 et la vue a USER2 si je retire le privilege select sur la table USER2 ne peut plus accéder à sa vue. :-s

  4. #4
    Membre actif

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Septembre 2008
    Messages
    110
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2008
    Messages : 110
    Par défaut
    Je crois qu'une solution plus simple ne serait pas de créer un synonyme d'une table?

  5. #5
    Membre expérimenté
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Mai 2012
    Messages
    127
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Mai 2012
    Messages : 127
    Par défaut
    Comme je l'ai écrit dans mon premier message, la vue doit appartenir à USER1, celui qui possède la table. USER2 reçoit un grant select sur la vue d'USER1, et aucun droit sur la table. USER2 ne peut donc interroger directement la table, mais s'il interroge la vue possédée par USER1, la requête contenue dans la vue est exécutée avec les privilèges d'USER1, et donc ça marche. Et c'est ça l'intérêt (ou plutôt l'un des intérêts) d'utiliser les vues

    Si vous créez la vue dans le schéma d'USER2, celui-ci doit disposer du privilège d'accéder à la table interrogée, et donc c'est normal que cela ne vous aide pas dans la résolution de votre problème.

Discussions similaires

  1. grant select on tables
    Par STELLLA dans le forum Débuter
    Réponses: 1
    Dernier message: 17/08/2010, 13h50
  2. grant select on tables
    Par STELLLA dans le forum PL/SQL
    Réponses: 1
    Dernier message: 17/08/2010, 13h48
  3. [Hibernate][Tomcat] Select sur tables
    Par parasol007 dans le forum Tomcat et TomEE
    Réponses: 15
    Dernier message: 12/05/2006, 14h01
  4. Insert avec select sur table avec Trigger d'insertion
    Par bran_noz dans le forum Développement
    Réponses: 5
    Dernier message: 23/12/2005, 14h38
  5. GRANT SELECT ON table_truc (colonne_machin) TO...
    Par dyvim dans le forum Oracle
    Réponses: 22
    Dernier message: 07/10/2005, 17h41

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