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 OWNEDzmienia własność wszystkich obiektów aktualnie należących do roli.DROP OWNEDwtedy 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