Eine Liste der Dinge, die Sie missverstanden haben:
-
ALTER DEFAULT PRIVILEGES
ändert nicht die Berechtigungen für ein vorhandenes Objekt, in Ihrem Fall das Schema.Sie müssen erteilen der
CREATE
Privileg auf dem Schema:GRANT CREATE ON SCHEMA tn_schema TO tn_beta_migrator;
-
Die
ALTER DEFAULT PRIVILEGES
-Anweisung, die Sie ausgeführt haben, wirkt sich nur auf die Berechtigungen für Tabellen aus, die vom Benutzerpostgres
erstellt wurden im Schematn_schema
, aber es scheint, dass Sietn_beta_migrator
wollen um Tabellen zu erstellen.ALTER DEFAULT PRIVILEGES
ist nicht erforderlich überhaupt nicht, da der Benutzer, der die Tabelle erstellt, zum Eigentümer der Tabelle wird und standardmäßig alle Berechtigungen für die Tabelle hat. -
Sie können Standardrechte mit
\ddp
anzeigen inpsql
. -
Schemas sind Teil einer Datenbank, daher müssen Sie sich mit der Datenbank verbinden, um ihre Schemas anzuzeigen.
Wenn Sie möchten, dass die Tabellen von tn_beta_migrator
erstellt werden bestimmte Berechtigungen standardmäßig erhalten möchten, müssen Sie Standardberechtigungen für diesen Benutzer definieren (und nicht für postgres
, wie du es getan hast):
ALTER DEFAULT PRIVILEGES FOR ROLE tn_beta_migrator IN SCHEMA tn_schema GRANT ...;