DROP USER
(または DROP ROLE
、同じこと)ロールがまだ何かを所有しているか、他のオブジェクトに対して付与された特権を持っている間は続行できません。
DROP OWNED
ですべての権限を削除します (文言からはあまり明白ではありません) 。 マニュアル:
したがって、役割を削除するための信頼できるコマンドのシーケンスは次のとおりです。
REASSIGN OWNED BY ryan TO postgres; -- or some other trusted role
DROP OWNED BY ryan;
同じクラスターのすべてのデータベースで両方のコマンドを実行します 役割が何かを所有している、または特権を持っている場合!
そして最後に:
DROP USER ryan;
-
REASSIGN OWNED
ロールが現在所有しているすべてのオブジェクトの所有権を変更します。 -
DROP OWNED
その後、特権のみを取り消します(所有権は邪魔になりません)。
または、REASSIGN OWNED
をスキップすることもできます 。次に、DROP OWNED
(また)ユーザーが所有するすべてのオブジェクトを削除します。 (よろしいですか?!)
関連:
- 権限を持つ役割を削除する> (関連するすべてのDBのコマンドを生成する機能付き)
- PostgreSQLロールにリンクされているオブジェクトを検索する