DROP USER
(или DROP ROLE
, същото нещо) не може да продължи, докато ролята все още притежава нещо или има предоставени привилегии върху други обекти.
Отървете се от всички привилегии с DROP OWNED (което не е твърде очевидно от формулировката) . Ръководството:
Така че надеждната последователност от команди за премахване на роля е:
REASSIGN OWNED BY ryan TO postgres; -- or some other trusted role
DROP OWNED BY ryan;
Изпълнете и двете команди във всяка база данни от същия клъстер където ролята притежава нещо или има някакви привилегии!
И накрая:
DROP USER ryan;
REASSIGN OWNEDпроменя собствеността за всички обекти, притежавани в момента от ролята.DROP OWNEDслед това само отменя привилегии (собственост от пътя).
Като алтернатива можете да пропуснете REASSIGN OWNED . След това DROP OWNED (също) ще премахне всички обекти, притежавани от потребителя. (Сигурен ли си?!)
Свързани:
- Премахване на роля с привилегии (с функция за генериране на команди за всички съответни DB)
- Намиране на обекти, свързани с роля на PostgreSQL