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 :

Besoin d'aide pour droit d'accès


Sujet :

PostgreSQL

  1. #1
    Membre du Club
    Besoin d'aide pour droit d'accès
    Bonjour à tous,

    sous PostGreSQL version 12, avec le compte "postgres", j'ai crée une DataBase nommée "database1",
    dans laquelle j'ai mis une table nommée "tbl_clients".

    Ensuite j'ai crée un utilisateur nommée "utilisateur", comme ceci :

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    CREATE ROLE utilisateur WITH LOGIN NOSUPERUSER NOCREATEDB NOCREATEROLE NOINHERIT NOREPLICATION CONNECTION LIMIT -1 PASSWORD 'xxxxx';


    puis, pour lui donner accès à la database "database1", j'ai écris :

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    GRANT ALL PRIVILEGES ON DATABASE database1 TO utilisateur;


    Maintenant je peux me connecter à la base de données avec "utilisateur", mais quand je fais un SELECT
    j'ai un message d'erreur qui me dit que je ne suis pas autorisé à lire la table "tbl_clients".

    Que faire ?

  2. #2
    Rédacteur

    Créer un role n'a rien a voir avec la création d'un utilisateur.
    Un rôle est une collection de privilèges que l'on peut attribuer à un utilisateur.

    Il va falloir apprendre le langage SQL !

    A +
    Cette signature n'a pas pu être affichée car elle comporte des erreurs.

  3. #3
    Membre expert
    Salut
    PostgreSQL ne fait pas de différence entre CREATE ROLE et CREATE USER (la doc).
    Seul le paramètre NO LOGIN/ LOGIN créera un ROLE/ USER.
    Pour revenir à la question.
    Une database est un type d'objet, une table en est un autre. Donc il n'ont pas les mêmes types de privilèges bien que l'un contient l'autre.
    Il faut alors définir les droits de "utilisateur" sur les tables nouvellement créées, ou donner le droit SUPERUSER à "utilisateur"
    @+
    Le monde est trop bien programmé pour être l’œuvre du hasard…
    Mon produit pour la gestion d'école: www.logicoles.com

  4. #4
    Rédacteur/Modérateur

    Bonjour,

    Ne donnez le droit SUPERUTILISATEUR qu'à un rôle dédié à l'administration du serveur.
    Pour un SELECT, donnez juste les droits de SELECT au rôle choisi.
    C'est une question de sécurité...

    ced
    Rédacteur / Modérateur SGBD et R
    Mes tutoriels et la FAQ MySQL

    ----------------------------------------------------
    Pensez aux balises code et au tag
    Une réponse vous a plu ? N'hésitez pas à y mettre un
    Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça

  5. #5
    Membre du Club
    ça a fonctionné en donnant des droits sur la table,
    merci alassanediakite pour la réponse :-)