web-dev-qa-db-fra.com

Postgresql: erreur "doit être propriétaire de la relation" lors de la modification d'un objet propriétaire

Quelle est l'option/astuce grant que je dois donner à l'utilisateur actuel ("serA") pour lui permettre de changer le propriétaire d'un objet qui appartient à un autre utilisateur ("serC ")?

Plus précisément, la table contact appartient à serC et lorsque j'exécute la requête suivante pour changer le propriétaire en serB, connecté à la serA:

alter table contact owner to userB;

Je reçois cette erreur:

ERROR:  must be owner of relation contact

Mais serA a tous les droits nécessaires pour le faire normalement (l'option d'octroi "créer sur le schéma" devrait suffire):

grant select,insert,update,delete on all tables in schema public to userA; 
grant select,usage,update on all sequences in schema public to userA;
grant execute on all functions in schema public to userA;
grant references, trigger on all tables in schema public to userA;
grant create on schema public to userA;
grant usage on schema public to userA;

Thks


Sortie de ligne de commande:

root@server:~# psql -U userA myDatabase
myDataBase=>\dt contact
    List of relations
Schema |  Name   |   Type   |  Owner
-------+---------+----------+---------
public | contact | table    | userC
(1 row)
myDataBase=>
myDataBase=>alter table contact owner to userB;
ERROR:  must be owner of relation public.contact
myDataBase=>
49
gudepier

De le manuel fin .

Vous devez posséder la table pour utiliser ALTER TABLE.

Ou être un superutilisateur de la base de données.

ERREUR: doit être le propriétaire de la relation

Les messages d'erreur PostgreSQL sont généralement sur place. Celui-ci est sur place.

13