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=>
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.