sql >> Databáze >  >> RDS >> PostgreSQL

Nelze zrušit roli PostgreSQL. Chyba:`nelze vypustit, protože na něm závisí některé objekty`

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í:



  1. Entity Framework + MySQL - Proč je výkon tak hrozný?

  2. PHP/HTML Přidat a odebrat tlačítko

  3. rozdíl mezi localhost a postgres pro hostitele v dockeru

  4. Připojte se k MySQL přímo z aplikace pro iPad (ne přes PHP atd.)