Un elenco di cose che hai frainteso:
-
ALTER DEFAULT PRIVILEGES
non cambia i permessi su nessun oggetto esistente, nel tuo caso lo schema.Devi concedere il
CREATE
privilegio sullo schema:GRANT CREATE ON SCHEMA tn_schema TO tn_beta_migrator;
-
Il
ALTER DEFAULT PRIVILEGES
istruzione che hai eseguito influenzerà solo i permessi sulle tabelle create dall'utentepostgres
nello schematn_schema
, ma sembra che tu vogliatn_beta_migrator
per creare tabelle.Non hai bisogno di
ALTER DEFAULT PRIVILEGES
affatto, 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
\ddp
inpsql
. -
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 ...;