Come si concede l'accesso in lettura/selezione a tutte le funzioni e le visualizzazioni a un utente arbitrario?Come concedere tutti i privilegi sulle viste all'utente arbitrario
Io uso psql --user=postgres -d mydb -f myview.sql
per creare diverse funzioni e punti di vista, e poi corro:
GRANT ALL PRIVILEGES ON DATABASE mydb TO myuser;
Dopo aver ottenuto tutti i privilegi, mi sarei aspettato myuser
di avere ora accesso alle funzioni e viste create dall'utente postgres
. Tuttavia, quando provo ad accedervi con myuser
, ottengo un errore "permesso negato per la relazione ...". Perchè è questo?
Mi ci è voluta un'ora per rendermi conto che "SELEZIONA TUTTO SU TUTTE LE TAVOLE IN SCHEMA pubblico a mio figlio"; ha senso solo quando questo comando viene eseguito quando l'utente che sta concedendo è * CONNECTED * su quel database. In caso contrario, non fa nulla (o almeno non dà il permesso di selezione all'utente). Nella shell del superutente usa \ c nome_database. – marcel
@marcel: ho aggiunto una nota per ricordare alla gente. –
Ciò non garantisce all'utente l'autorizzazione per le sequenze. – Cerin