Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 2 sur 2
  1. #1
    Membre Expert Avatar de sat83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    mars 2004
    Messages
    1 014
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : mars 2004
    Messages : 1 014
    Points : 1 260
    Points
    1 260

    Par défaut Créer utilisateur et rôle

    Bonjour à tous,

    Après quelques années sous ORACLE, je viens de débuter sous PostgreSQL il y a peu, et je tâtonne un petit peu au début.

    Sous Oracle, un schéma était associé à un utilisateur qui avait les droits sur le contenu de son schéma pour créer, visualiser, modifier supprimer des tables ou autres. Via un rôle, on pouvait lui donner des droits sur les tables d'un autre schéma.

    J'essaie de reproduire ce fonctionnement sous PostgreSQL, mais je dois mal m'y prendre parce que je n'y parviens pas. De plus, j'ai du mal à saisir la notion de rôle groupe et de rôle de connexion.

    En gros, ce que je souhaite faire : dans ma base de donnée maBase j'ai deux schémas totoSchema et titiSchema. Je souhaiterais créer deux utilisateurs toto et titi chacun propriétaire des éléments de son schéma, et donner le droit à toto d'effectuer des SELECT sur les tables de titi. Donc ,quand je me connecte à la base sous toto, je n'ai accès qu'aux éléments (tables, séquences, etc...) de totoSchema et aux tables (que en SELECT) de titiSchema.

    Je ne sais pas si c'est très clair, si ce n'est pas le cas n'hésitez pas à me le dire !

    Merci à ceux qui voudront éclairer ma lanterne !
    Ce que l'on apprend par l'effort reste toujours ancré plus longtemps...

  2. #2
    Membre Expert Avatar de sat83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    mars 2004
    Messages
    1 014
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : mars 2004
    Messages : 1 014
    Points : 1 260
    Points
    1 260

    Par défaut

    Re-bonjour,
    Voici ma démarche pour me rapprocher d'un fonctionnement ORACLE, pouvez vous me dire si celle-ci vous semble correcte? Est-ce que selon vous il manque des choses?

    Code :
    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
    30
    31
    32
    33
    34
    --###############################
    -- connecté en super utilisateur:
    --###############################
     
    --Créer le schéma "MON_SCHEMA"
    CREATE SCHEMA "MON_SCHEMA" AUTHORIZATION super_utilisateur;
     
    --Créer le rôle groupe "MON_SCHEMA_ROLE"
    CREATE ROLE "MON_SCHEMA_ROLE" NOSUPERUSER INHERIT NOCREATEDB NOCREATEROLE;
     
    --Créer le rôle de connexion "MON_SCHEMA_CONNECT"
    CREATE ROLE "NOM_SCHEMA_CONNECT" LOGIN NOSUPERUSER INHERIT NOCREATEDB NOCREATEROLE ENCRYPTED PASSWORD 'abcde' VALID UNTIL 'infinity';
     
    --Modifier le search_path par défaut:
    ALTER ROLE "MON_SCHEMA_CONNECT" SET search_path = "MON_SCHEMA", public; 
     
    --Affecter les droits "MON_SCHEMA_ROLE" à  "MON_SCHEMA_CONNECT"
    GRANT "MON_SCHEMA_ROLE" TO "MON_SCHEMA_CONNECT"
     
    --Affecter les droits "MON_SCHEMA_ROLE" à  "ADMIN_ROLE"
    GRANT "MON_SCHEMA_ROLE" TO "ADMIN_ROLE"
     
    --Donner accès total au schéma "MON_SCHEMA" pour "MON_SCHEMA_ROLE"
    GRANT ALL ON SCHEMA "MON_SCHEMA" TO "MON_SCHEMA_ROLE"
     
    --Donner accès à des tables, séquences, vues (ou autres) d’un autre schéma:
    GRANT USAGE ON SCHEMA "SCHEMA_CIBLE" TO "MON_SCHEMA_ROLE";  --droit d’utiliser le schéma
    GRANT SELECT [, INSERT,…] ON TABLE "SCHEMA_CIBLE"."NOM_TABLE" TO "MON_SCHEMA_ROLE"; --droit sur une table
     
    --###############################
    -- connecté en MON_SCHEMA_CONNECT:
    --###############################
     
    --créer les tables, séquences, vues en spécifiant comme owner: MON_SCHEMA_ROLE
    En gros pour chaque nouveau schéma je créé deux rôles associés (un de connexion, un pour les droits)...
    Ce que l'on apprend par l'effort reste toujours ancré plus longtemps...

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •