【PostgreSQL】ロールの削除

PostgreSQLでロールを削除する方法について

 

testロールを削除したいが、testロールには同名のtestデータベースを所有しているため、削除しようとすると以下のようにエラーとなる。

postgres=# DROP ROLE test;
ERROR: role "test" cannot be dropped because some objects depend on it
DETAIL: owner of database test

 

PostSQLでは、削除したいロールがスキーマ、テーブル、データベースの所有者の場合は、それらを削除するか所有権を他のロールに変更しておく必要がある。

postgres=# DROP DATABASE test;
DROP DATABASE
postgres=# DROP ROLE test;
DROP ROLE

 

もし複数の所有権を持っており、それらを一度に削除したい場合はdrop ownedを使用します。

DROP OWNED BY role名

/* -----codeの行番号----- */