Was ist die empfohlene Methode, um herauszufinden, ob ein Benutzer ein bestimmtes Recht (z. B. auswählen oder ausführen) auf a bestimmte Klasse (zB Tabelle oder Funktion) in PostgreSQL?Finden Sie heraus, ob Benutzer die Berechtigung zum Auswählen/Aktualisieren/... einer Tabelle/Funktion/... in PostgreSQL erhalten hat.
Im Moment habe ich so etwas wie
aclcontains(
someColumnWithAclitemArray,
makeaclitem(userOid,grantorOid,someRight,false))
aber es ist schrecklich, da ich für jeden grantorOid
zu überprüfen, was möglich ist und für jeden userOid
der Benutzer gehören.
Zu einem verwandten Hinweis: Was sind die möglichen Rechte, die Sie testen können? Ich habe keine Dokumentation, sondern liest den Quellcode Ich denke, gefunden:
INSERT
SELECT
UPDATE
DELETE
TRUNCATE
REFERENCES
TRIGGER
EXECUTE
USAGE
CREATE
CONNECT
Es scheint auch ein CREATE TEMP
Recht zu sein, aber ich kann nicht den richtigen Text herauszufinden, in dem makeaclitem
-function zu verwenden.