Qual è il modo consigliato di capire se un utente ha un certo diritto (ad esempio selezionare o eseguire) su un certa classe (es. tabella o funzione) in PostgreSQL?Scopri se l'utente ha il permesso di selezionare/aggiornare/... una tabella/funzione/... in PostgreSQL
Al momento ho ottenuto qualcosa come
aclcontains(
someColumnWithAclitemArray,
makeaclitem(userOid,grantorOid,someRight,false))
ma è terribile da quando devo controllare per ogni grantorOid
che è possibile e per ogni userOid
l'utente può appartenere a.
Su una nota correlata: quali sono i possibili diritti per i quali è possibile eseguire il test? Non ho trovato alcuna documentazione ma leggendo il codice sorgente immagino:
INSERT
SELECT
UPDATE
DELETE
TRUNCATE
REFERENCES
TRIGGER
EXECUTE
USAGE
CREATE
CONNECT
Ci sembra anche essere un diritto CREATE TEMP
, ma io non riesco a capire il testo corretto da utilizzare nel makeaclitem
-funzione.