sql >> Database >  >> RDS >> PostgreSQL

Kan PostgreSQL-rol niet verwijderen. Fout:`kan niet worden verwijderd omdat sommige objecten ervan afhankelijk zijn`

DROP USER (of DROP ROLE , hetzelfde) kan niet doorgaan terwijl de rol nog iets bezit of toegekende privileges heeft voor andere objecten.

Ontdoe je van alle privileges met DROP OWNED (wat niet al te duidelijk blijkt uit de bewoording) . De handleiding:

Dus de betrouwbare volgorde van commando's om een ​​rol te laten vallen is:

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

Voer beide opdrachten uit in elke database van hetzelfde cluster waar de rol iets bezit of privileges heeft!
En tot slot:

DROP USER ryan;
  • REASSIGN OWNED verandert het eigendom van alle objecten die momenteel eigendom zijn van de rol.
  • DROP OWNED trekt dan alleen privileges in (eigendom uit de weg).

U kunt ook REASSIGN OWNED overslaan . Dan DROP OWNED zal (ook) alle objecten van de gebruiker laten vallen. (Weet je het zeker?!)

Gerelateerd:



  1. Vraag kolomnamen op uit een tabel van een andere gebruiker

  2. Som op een linker join SQL

  3. Hoe maak ik verbinding met MySQL 5.1 in Visual Studio 2010?

  4. Arrayvariabele maken in MySQL