Un elenco di cose che hai frainteso:
-
ALTER DEFAULT PRIVILEGESnon cambia i permessi su nessun oggetto esistente, nel tuo caso lo schema.Devi concedere il
CREATEprivilegio sullo schema:GRANT CREATE ON SCHEMA tn_schema TO tn_beta_migrator; -
Il
ALTER DEFAULT PRIVILEGESistruzione che hai eseguito influenzerà solo i permessi sulle tabelle create dall'utentepostgresnello schematn_schema, ma sembra che tu vogliatn_beta_migratorper creare tabelle.Non hai bisogno di
ALTER DEFAULT PRIVILEGESaffatto, poiché l'utente che crea la tabella diventa il proprietario della tabella e ha tutti i privilegi sulla tabella per impostazione predefinita. -
Puoi visualizzare i privilegi predefiniti con
\ddpinpsql. -
Gli schemi fanno parte di un database, quindi devi connetterti al database per vederne gli schemi.
Se vuoi che le tabelle create da tn_beta_migrator ottenere determinate autorizzazioni per impostazione predefinita, è necessario definire i privilegi predefiniti per quell'utente (e non per postgres , come hai fatto tu):
ALTER DEFAULT PRIVILEGES FOR ROLE tn_beta_migrator IN SCHEMA tn_schema GRANT ...;