Was ist die grant
Option/Trick muss ich dem aktuellen Benutzer geben ("userA"), damit er den Eigentümer eines Objekts ändern kann, der gehört von einem anderen Benutzer ("userC")?Postgresql: Fehler "muss Eigentümer der Beziehung sein" beim Ändern eines Eigentümerobjekts
Genauer gesagt, die Kontakt Tabelle wird durch die BenutzerC Besitz und wenn ich führen Sie die folgende Abfrage für den Besitzer der userB Wechsel, verbunden mit dem userA:
alter table contact owner to userB;
Ich erhalte diesen Fehler:
ERROR: must be owner of relation contact
Aber userA hat alle benötigten Rechte, die normalerweise zu tun (die "auf Schema erstellen" grant Option sollte genug sein):
grant select,insert,update,delete on all tables in schema public to userA;
grant select,usage,update on all sequences in schema public to userA;
grant execute on all functions in schema public to userA;
grant references, trigger on all tables in schema public to userA;
grant create on schema public to userA;
grant usage on schema public to userA;
Thks
Befehlszeilen Ausgabe:
[email protected]:~# psql -U userA myDatabase
myDataBase=>\dt contact
List of relations
Schema | Name | Type | Owner
-------+---------+----------+---------
public | contact | table | userC
(1 row)
myDataBase=>
myDataBase=>alter table contact owner to userB;
ERROR: must be owner of relation public.contact
myDataBase=>
Dieses Problem tritt auf, wenn wir falsche Benutzer zu Aktionen wie update/delete verwenden.Ich war mit diesem Problem konfrontiert coz ich falsche Benutzer verwendet, um DMLs.when ich wählte den richtigen Benutzer, wurde das Problem gelöst.Auch wenn Sie dem aktuellen Benutzer die DML-Berechtigungen gewähren, wird dieses Problem gelöst werden. – Ankur
Ich möchte nur erwähnen, dass wenn ein Benutzer Groß-und Kleinschreibung ist, sollte es zitiert werden. ZB: rate "UserB" zu userA -> in diesem Fall ist der erste Benutzer Groß-und Kleinschreibung, aber die zweite nicht – guival