web-dev-qa-db-ja.com

Postgresql:所有者オブジェクトを変更する際のエラー「関係の所有者でなければなりません」

彼がオブジェクトの所有者を変更できるようにするために、現在のユーザー( "userA")に与える必要があるgrantオプション/トリックとはこれは別のユーザー( "userC")に属しますか?

より正確には、contactテーブルはuserCによって所有され、I所有者をuserBに変更するために次のクエリを実行し、userA

alter table contact owner to userB;

私はこのエラーを受け取ります:

ERROR:  must be owner of relation contact

ただし、userAは、通常それを行うために必要なすべての権限を持っています( "schema "付与オプションで十分です):

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


コマンドライン出力:

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

ファインマニュアル から。

ALTER TABLEを使用するには、テーブルを所有する必要があります。

または、データベースのスーパーユーザーになります。

エラー:関係連絡先の所有者である必要があります

PostgreSQLのエラーメッセージは通常、スポットです。これはスポットです。