どうですか
DROP USER <username>
これは実際にはDROP ROLE
のエイリアスです 。
そのユーザーに関連付けられている特権を明示的に削除する必要があります。また、その所有権を他の役割に移動する(またはオブジェクトを削除する)必要があります。
これは
によって最もよく達成されますREASSIGN OWNED BY <olduser> TO <newuser>
および
DROP OWNED BY <olduser>
後者は、ユーザーに付与された特権をすべて削除します。
DROPROLEのpostgresドキュメントとこれに関する詳細な説明を参照してください。
追加:
どうやら、ここで説明したコマンドを使用してユーザーを削除しようとすると、ここで説明するように、元のGRANTSが作成されたのと同じデータベースに接続しているときにユーザーを実行している場合にのみ機能します。
https://www.postgresql.org/message-id/83894A1821034948BA27FE4DAA47427928F7C29922%40apde03.APD.Satcom.Local