DROP USER
(nebo DROP ROLE
, totéž) nemůže pokračovat, dokud role stále něco vlastní nebo má nějaká udělená oprávnění k jiným objektům.
Zbavte se všech oprávnění pomocí DROP OWNED
(což není ze znění příliš zřejmé) . Příručka:
Spolehlivá sekvence příkazů pro zrušení role je tedy:
REASSIGN OWNED BY ryan TO postgres; -- or some other trusted role
DROP OWNED BY ryan;
Spusťte oba příkazy v každé databázi stejného clusteru kde role cokoli vlastní nebo má nějaká privilegia!
A nakonec:
DROP USER ryan;
REASSIGN OWNED
změní vlastnictví všech objektů aktuálně vlastněných rolí.DROP OWNED
pak pouze odejme privilegia (vlastnictví z cesty).
Případně můžete přeskočit REASSIGN OWNED
. Poté DROP OWNED
zruší (také) všechny objekty vlastněné uživatelem. (Jsi si jistý?!)
Související:
- Zrušit roli s oprávněními (s funkcí pro generování příkazů pro všechny relevantní DB)
- Najít objekty propojené s rolí PostgreSQL