Vous n'êtes pas identifié(e).
Bonjour @ tous.
Je rencontre de grosses difficultés pour attribuer à un utilisateur le droit de création/modification de table et également au niveau de l'utilisation des fonctions, j'ai toujours ceci qui s'affiche lorsque j'essaie d'attribuer les droits :
WARNING: no privileges were granted for "unaccent_init"
WARNING: no privileges were granted for "unaccent_lexize"
J'ai contrôlé les droits du rôle qui me semblent bon :
J'ai contrôlé les droits sur pg_database et j'ai ceci :
{group=CTc/group,monuser=c/group}
Lorsque je regarde sur pg_class sur une table cible pour contrôler, j'ai ceci :
{admin=a*r*w*d*D*x*t*/monuser=arwdDxt/admin}
De mon côté ce que je souhaite c'est que le user monuser puisse :
> utiliser les fonctions du schéma dans lequel elle a accès + le schéma public
> Créer ou modifier des tabes et des vues sur un schéma spécifique
Est-ce que vous auriez une idée de ce qui bloque ?
Merci d'avance de votre aide.
Geo-x
Dernière modification par Geo-x (25/11/2020 12:39:28)
Hors ligne
Le message indique que votre utilisateur n'a pas les droits suffisants pour donner des droits à un autre utilisateur.
Julien.
https://rjuju.github.io/
Hors ligne
Bonjour rjuju et merci de votre réponse.
Je vois le problème, comment pourrais-je faire pour visualiser les droits d'attribuer des droits (pas forcément table par table) ?
Hors ligne
Vous pouve utiliser la fonction aclexplode sur pg_class.relacl; qui vous donnera le détail.
Par exemple:
with s as (select aclexplode(relacl) acl from pg_class where relname = 'nomtable')
select (acl).grantor::regrole, (acl).grantee.regrole, (acl).privilege_type, (acl).is_grantable from s ;
Vous pouvez sinon utiliser la fonction has_table_privilege(), en précisant le droit voulu, par exemple "SELECT WITH GRANT OPTION", cf https://www.postgresql.org/docs/current … -info.html
Julien.
https://rjuju.github.io/
Hors ligne
Merci pour cette précieuse requête.
Cependant comme je vous disais je cherche à voir qui a les droits pour attribuer par exemple le droit de faire des ALTER (sans mauvais jeu de mot niveau muscu) ou bien qui a accès à des fonctions.
Là c'est plus compliqué puisque mon besoin est le suivant :
> utiliser les fonctions du schéma dans lequel elle a accès + le schéma public
> Créer ou modifier des tabes et des vues sur un schéma spécifique
Ce n'est peut-être pas possible en fait.
Hors ligne
Pour faire des ALTER sur un objet, il faut être propriétaire de l'objet ou membre du propriétaire de l'objet.
Guillaume.
Hors ligne
Bonjour Guillaume.
En effet en faisant un
GRANT ROLE user_proprietaire TO nouveau_user;
Ca fonctionne, sauf que maintenant nouveau_user a accès à beaucoup de choses, il ne me reste plus qu'à restreindre.
Hors ligne
Ok c'est bon, pour information, j'ai attribué mon nouveau_user en tant que propriétaire sur les deux schémas à modifier.
De fait mon user_proprietaire historique qui hérite des droits du superuser, continue à pouvoir faire des ALTER sur ces mêmes schémas.
C'est donc une affaire résolu, merci beaucoup de votre précieuse aide.
Geo-x
Hors ligne