Vous n'êtes pas identifié(e).
Pages : 1
Bonsoir,
Je souhaiterais comprendre la différence entre un "CREATE ROLE", "CREATE USER", et "CREATE GROUP".
1. D'après la documentation PostgreSQL, ces trois instructions représentent la même chose (à moins que j'ai mal compris), et d'après le standard il faudrait de préférence utiliser la syntaxe "CREATE ROLE". Est-ce correct ?
2. Dans Oracle, on a la possibilité de créer un USER (compte pour se connecter à la base) et de créer des ROLE pour des droits (ce mot n'a peut-être pas la même signification que pour le ROLE de PostgreSQL). Il est donc possible de faire un "GRANT role1 TO user1". Mais avec PostgreSQL ce serait plutôt un "GRANT role1 TO role2". Est-ce correct ?
3. Existe-t-il d'autres notions pour créer des utilisateurs ou des groupes d'utilisateurs dans PostgreSQL ? Parce que j'ai l'impression qu'avec PostgreSQL, tout peut se faire avec "CREATE ROLE".
4. Dans les autres SGBDR, il existe plusieurs comptes d'administration par défaut (sys, system etc...), avec PostgreSQL il n'existe que le compte admin "postgres" n'est-ce pas ?
Je vous remercie par avance pour vos réponses, cordialement,
Dernière modification par guk92 (17/03/2014 10:40:38)
Hors ligne
Bonjour,
1. C'est exact,à savoir qu'ils créent des utilisateurs. Ils étaient différents il y a quelques années, mais depuis la gestion des groupes à été revue. Les trois existent encore afin de garder une compatibilité. Il y a quand même quelques nuances, par exemple CREATE ROLE créera par défaut un utilisateur qui ne peut pas se connecter (NOLOGIN), alors que CREATE USER lui mettra l'attribut (LOGIN).
2. Exact. Pouvoir faire un GRANT d'un utilisateur sur un autre permet une gestion plus poussée facilement des droits si besoin.
3. Non, tout se trouvera dans la liste des utilisateurs (pg_roles), et chacun des attributs (SUPERUSER, INHERIT ...) peut ensuite être modifié avec ALTER ROLE.
4. Il s'agit en général de l'utilisateur postgres, comme le font toutes les distributions. Si vous initialisez manuellement un cluster avec initdb, si vous ne spécifiez pas l'option -U, le nom du superutilisateur sera le même que celui de votre utilisateur système, il faut donc être vigilant.
Julien.
https://rjuju.github.io/
Hors ligne
Merci pour vos réponses Julien
Sujet Résolu.
Hors ligne
Pages : 1