DROP USER
(lub DROP ROLE
, to samo) nie może być kontynuowane, gdy rola nadal jest właścicielem czegokolwiek lub ma przyznane uprawnienia do innych obiektów.
Pozbądź się wszystkich uprawnień dzięki DROP OWNED
(co nie wynika z samego sformułowania) . Instrukcja:
Więc niezawodna sekwencja poleceń do usunięcia roli to:
REASSIGN OWNED BY ryan TO postgres; -- or some other trusted role
DROP OWNED BY ryan;
Uruchom oba polecenia w każdej bazie danych tego samego klastra gdzie rola jest właścicielem czegokolwiek lub ma jakiekolwiek uprawnienia!
I na koniec:
DROP USER ryan;
REASSIGN OWNED
zmienia własność wszystkich obiektów aktualnie należących do roli.DROP OWNED
wtedy tylko odwołuje przywileje (własność z pominięciem).
Alternatywnie możesz pominąć REASSIGN OWNED
. Następnie DROP OWNED
usunie (także) wszystkie obiekty należące do użytkownika. (Czy na pewno?!)
Powiązane:
- Zrzuć rolę z uprawnieniami (z funkcją generowania poleceń dla wszystkich odpowiednich DB)
- Znajdź obiekty połączone z rolą PostgreSQL