PostgreSQL La base de donnees la plus sophistiquee au monde.

Forums PostgreSQL.fr

Le forum officiel de la communauté francophone de PostgreSQL

Vous n'êtes pas identifié(e).

#1 11/02/2018 16:33:50

pg_linux
Membre

[résolu] postgres_fdw et droits de l'utilisateur local

Bonjour,

j'ai crée un mapping pour un utilisateur local lambda, j'obtiens un "ERREUR:  droit refusé pour la relation"

le même mapping pour un utilisateur local ayant des droits admin : nickel

Je serai tenté de déduire que l'utilisateur local doit avoir des droits particuliers; mais je n'en trouve pas mention ici :
https://docs.postgresql.fr/10/postgres-fdw.html

Dernière modification par pg_linux (11/02/2018 19:44:05)

Hors ligne

#2 11/02/2018 18:12:06

dverite
Membre

Re : [résolu] postgres_fdw et droits de l'utilisateur local

Quelle est la requête sql qui provoque cette erreur?
Qui est le possesseur de la table (c.a.d qui a exécuté le CREATE FOREIGN TABLE) ?
Est-ce le même utilisateur que celui qui lance cette requête ou un autre?

Un utilisateur lambda n'a pas le droit par défaut de sélectionner une table qui ne lui appartient pas, qu'elle soit locale ou distante.

Hors ligne

#3 11/02/2018 18:19:19

pg_linux
Membre

Re : [résolu] postgres_fdw et droits de l'utilisateur local

La requête qui provoque l'erreur est de type SELECT ...
Le "create foreign table" a été fait part l'utilisateur postgres
l'utilisateur qui lance la requête est un utilisateur lambda (ça marche pas) et un utilisateur admin (pas postgres, un autre)

Le "CREATE USER MAPPING FOR local_user" ne correspond-t-il pas à donner ce droit à local_user ?

Hors ligne

#4 11/02/2018 19:12:41

dverite
Membre

Re : [résolu] postgres_fdw et droits de l'utilisateur local

Pour moi le CREATE USER MAPPING ne donne pas de droit implicite sur les tables distantes créées plus tard. Les droits sur les tables distantes sont gérées exactement comme pour tables locales: le possesseur a tous les droits et les autres doivent acquérir via un GRANT, plus ou moins direct.

Sur la question de l'utilisateur admin, dans postgres, je comprends ça comme admin=SUPERUSER.  postgres n'est pas un utilisateur spécial en-dehors d'être SUPERUSER et tout utilisateur SUPERUSER peut faire la même chose que lui. Pour un SUPERUSER, grosso-modo tous les tests de droits d'accès sont court-circuités. Il pourra toujours faire n'importe quoi sur n'importe quelle table.

Hors ligne

#5 11/02/2018 19:27:45

pg_linux
Membre

Re : [résolu] postgres_fdw et droits de l'utilisateur local

Ok en effet, résolu avec un :

grant select on foreign_table to local_user;

Hors ligne

Pied de page des forums