sql >> Database teknologi >  >> RDS >> PostgreSQL

Kan ikke droppe PostgreSQL-rollen. Fejl:`kan ikke slettes, fordi nogle objekter afhænger af det`

DROP USER (eller DROP ROLE , samme ting) kan ikke fortsætte, mens rollen stadig ejer noget eller har tildelte privilegier på andre objekter.

Slip af med alle privilegier med DROP OWNED (hvilket ikke er så tydeligt ud fra ordlyden) . Manualen:

Så den pålidelige rækkefølge af kommandoer til at droppe en rolle er:

REASSIGN OWNED BY ryan TO postgres;  -- or some other trusted role
DROP OWNED BY ryan;

Kør begge kommandoer i hver database i den samme klynge hvor rollen ejer noget eller har nogen privilegier!
Og til sidst:

DROP USER ryan;
  • REASSIGN OWNED ændrer ejerskab for alle objekter, der i øjeblikket ejes af rollen.
  • DROP OWNED derefter tilbagekalder kun privilegier (ejerskaber af vejen).

Alternativt kan du springe REASSIGN OWNED over . Derefter DROP OWNED vil (også) droppe alle objekter, der ejes af brugeren. (Er du sikker?!)

Relateret:



  1. Google Vis kommenteret tidslinje fra SQL-database ved hjælp af PHP JSON-problem

  2. Sådan får du ER-model af database fra server med Workbench

  3. Hvordan gemmer man et link i mysql?

  4. Mysql kan ikke vælge posten i tabellen