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

PostgreSQL Discussion :

Droits séquences et vues: spécialiste svp


Sujet :

PostgreSQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre chevronné Avatar de icer
    Inscrit en
    Janvier 2006
    Messages
    332
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 332
    Par défaut Droits séquences et vues: spécialiste svp
    Bonjour,

    Pour vous expliquez mon problème je vais partir d'un exemple :

    En plus du schema 'public', j'ai un autre schema 'concept' qui est n'est pas accessible à tout le monde:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    CREATE SCHEMA concept;
    REVOKE ALL ON SCHEMA concept FROM PUBLIC;
    Dans ce schema j'ai une table personne:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    CREATE TABLE concept.personne (
        id_personne SERIAL PRIMARY KEY,
        nom VARCHAR(255),
        prenom VARCHAR(255)
    );
    (Pour rappel, cette table n'est pas accessible à public).

    Dans le shema public, je crée une vue à travers laquelle il est possible de consulter et d'insérer de nouvelle lignes dans la table personne du shema concept, et ça pour tout le monde.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    CREATE VIEW public.personne AS 
    SELECT * FROM concept.personne;
     
    CREATE RULE personne_ins AS ON INSERT TO personne
        DO INSTEAD
        INSERT INTO concept.personne (nom, prenom) VALUES (NEW.nom, NEW.prenom);
     
    GRANT SELECT, INSERT ON public.personne TO public;
    Ensuite je me connecte à la base de données sous un autre utilisateur. Et j'essaye d'insérer une ligne dans la vue public.personne.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    INSERT INTO public.personne (nom, prenom) VALUES ('Michelle', 'DUPUIT');
    Normalement, l'insertion aurait dû se passer sans problème, or postgresql m'affiche l'erreur suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ERROR:  permission denied for sequence person_id_person_seq
    Pourtant je fais bien l'insertion sur la vue public.personne, et la régle de la vue sur l'INSERTION devrait effectuer l'insertion sur la table concept.personne sans posser de problème de droits.

    Est-ce qu'il y a quelque chose qui m'échappe sur l'utilisation des vues, ou est-ce un fonctionnement normal de Postgresql?

  2. #2
    Expert confirmé
    Avatar de GrandFather
    Inscrit en
    Mai 2004
    Messages
    4 587
    Détails du profil
    Informations personnelles :
    Âge : 55

    Informations forums :
    Inscription : Mai 2004
    Messages : 4 587
    Par défaut
    Bonjour,

    les séquences sont considérées du point de vue des droits d'accès comme des tables à part entière, il faut donc que tu accordes les droits pour UPDATE et SELECT à PUBLIC.
    FAQ XML
    ------------
    « Le moyen le plus sûr de cacher aux autres les limites de son savoir est de ne jamais les dépasser »
    Giacomo Leopardi

Discussions similaires

  1. Mettre en place des droits sur une vue différents de ceux de la table-source ?
    Par Antoun dans le forum Administration et Installation
    Réponses: 14
    Dernier message: 15/02/2010, 14h13
  2. [SQL SERVER 2K8] Droit lecture sur Vue avec Fonction
    Par 33Romain dans le forum Administration
    Réponses: 1
    Dernier message: 27/08/2009, 09h34
  3. Droits sur les vues d'une base SQL server 2000
    Par mioux dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 30/04/2007, 16h13
  4. [DROITS] création de vues matérialisées
    Par aline dans le forum Oracle
    Réponses: 6
    Dernier message: 26/12/2005, 17h36
  5. droits à travers une vue
    Par aline dans le forum Oracle
    Réponses: 5
    Dernier message: 05/01/2005, 18h14

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