Una lista de cosas que no entendiste:
-
ALTER DEFAULT PRIVILEGES
no cambia los permisos en ningún objeto existente, en su caso el esquema.Debe otorgar el
CREATE
privilegio en el esquema:GRANT CREATE ON SCHEMA tn_schema TO tn_beta_migrator;
-
ALTER DEFAULT PRIVILEGES
La declaración que ejecutó solo afectará los permisos en las tablas creadas por el usuariopostgres
en esquematn_schema
, pero parece que quierestn_beta_migrator
para crear tablas.No necesita
ALTER DEFAULT PRIVILEGES
en absoluto, ya que el usuario que crea la tabla se convierte en el propietario de la tabla y tiene todos los privilegios sobre la tabla de forma predeterminada. -
Puede ver los privilegios predeterminados con
\ddp
enpsql
. -
Los esquemas son parte de una base de datos, por lo que debe conectarse a la base de datos para ver sus esquemas.
Si desea que las tablas creadas por tn_beta_migrator
obtener determinados permisos de forma predeterminada, debe definir los privilegios predeterminados para ese usuario (y no para postgres
, como lo hiciste tú):
ALTER DEFAULT PRIVILEGES FOR ROLE tn_beta_migrator IN SCHEMA tn_schema GRANT ...;