2017-12-09 10 views
0

Gestern habe ich einen Benutzer erstellt, um Backups von PostgreSQL zu erstellen. Ich gewährte diesem Benutzer ausgewählt und dann bemerkte ich, dass der Name nicht gut geschrieben wurde. Das Problem ist, dass ich versucht, den Benutzer über die Befehlszeile und die Antwort war, aufgrund der Zuschüsse zu löschen, die ich wieder ein paar Momente gemacht:Die PostgreSQL-Rolle konnte nicht gelöscht werden

ERROR: role "dump_user" cannot be dropped because some objects depend on it 

Lange Rede kurzer Sinn, ich gelöscht diesen Benutzer pgAdmin verwenden und jetzt ich habe Probleme, weil, wenn ich eine neue Tabelle erstellen möchten, es sagt:

ERROR: role 313898229 was concurrently dropped 

I cheked und 313.898.229 war der oid dieser dump_user in der pg_authid Tabelle habe ich versucht, einen neuen Benutzer zu erstellen und diese oid zuweisen, aber postgres sagt, dass ich die system id "oid" nicht ändern kann.

Gibt es eine Möglichkeit, dass ich diesen Benutzer dauerhaft löschen kann?

Antwort

0

Wenn alles, was Sie wollten, war a different name:

ALTER ROLE dump_user RENAME TO better_name; 

Zu spät für das jetzt. Bevor die Rolle Löschen Sie laufen soll:

REASSIGN OWNED BY pg_dump TO postgres; -- postgres being default superuser role 

lesen Details hier:

Ihre Fehlermeldung:

ERROR: role 313898229 was concurrently dropped

ist in the source code here definiert. Sieht wie eine Wettlaufbedingung zwischen zwei Transaktionen aus. Aber Sie haben relevante Details ausgelassen.

Verwandte Themen