Sto configurando un database PostgreSQL con un numero molto ridotto di tabelle per un sito web semplice. Sto cercando dei modi per renderlo il più solido e controllabile possibile. C'è qualche ragione particolare per cui dovrei o non dovrei creare un ruolo PostgreSQL per ogni account utente sul sito web? L'idea è che potrei quindi utilizzare le autorizzazioni a livello di riga su tabelle contenenti informazioni personali o private e le query assomigliano a qualcosa del tipo:
-- Service logs in with role mywebsite and runs:
BEGIN
SET LOCAL ROLE charlie; -- A user on the website
INSERT ... -- DO STUFF
COMMIT;
Il codice di registrazione dovrebbe quindi conoscere sia l'account di sistema (mywebsite nell'esempio precedente) utilizzato per accedere al database sia l'utente per conto del quale vengono apportate modifiche (charlie). I due sono disponibili in PostgreSQL come session_user (uid) e current_user (euid).
Se conosci precedenti o motivi per cui questa sarebbe un'idea grandiosa o terribile, mi piacerebbe saperlo.