DROP USER
(atau DROP ROLE
, hal yang sama) tidak dapat dilanjutkan saat peran masih memiliki apa pun atau memiliki hak istimewa apa pun yang diberikan pada objek lain.
Singkirkan semua hak istimewa dengan DROP OWNED
(yang tidak terlalu jelas dari kata-katanya) . Manual:
Jadi urutan perintah yang dapat diandalkan untuk melepaskan peran adalah:
REASSIGN OWNED BY ryan TO postgres; -- or some other trusted role
DROP OWNED BY ryan;
Jalankan kedua perintah di setiap database dari cluster yang sama di mana peran memiliki sesuatu atau memiliki hak istimewa!
Dan akhirnya:
DROP USER ryan;
REASSIGN OWNED
mengubah kepemilikan untuk semua objek yang saat ini dimiliki oleh peran.DROP OWNED
maka hanya mencabut hak istimewa (kepemilikan keluar dari jalan).
Atau, Anda dapat melewati REASSIGN OWNED
. Kemudian DROP OWNED
akan (juga) menjatuhkan semua objek yang dimiliki oleh pengguna. (Apakah kamu yakin?!)
Terkait:
- Lepaskan peran dengan hak istimewa (dengan fungsi untuk menghasilkan perintah untuk semua DB yang relevan)
- Temukan objek yang ditautkan ke peran PostgreSQL