Wenn ich eine Datenbank in PostgreSQL erstelle, ohne explizit einen Standardtabellenbereich anzugeben, wird die Datenbank ohne Probleme erstellt (ich bin als pgsys- Benutzer angemeldet ):
postgres => Datenbank erstellen rich1;
DATENBANK ERSTELLEN
postgres => \ l +
Liste der Datenbanken
Name | Besitzer | Kodierung | Sortierung | Ctype | Zugriffsrechte | Größe | Tablespace | Beschreibung
----------- + ---------- + ---------- + ------------- + - ----------- + --------------------------------- + ----------- + ------------ + ------------------------- -------------------
postgres | pgsys | UTF8 | en_US.UTF-8 | en_US.UTF-8 | | 7455 kB | pg_default | Standard-Datenbank für administrative Verbindungen
rdsadmin | rdsadmin | UTF8 | en_US.UTF-8 | en_US.UTF-8 | rdsadmin = CTc / rdsadmin | Kein Zugriff | pg_default |
rich1 | pgsys | UTF8 | en_US.UTF-8 | en_US.UTF-8 | | 7233 kB | pg_default |
template0 | rdsadmin | UTF8 | en_US.UTF-8 | en_US.UTF-8 | = c / rdsadmin | 7345 kB | pg_default | nicht veränderbare leere Datenbank
: rdsadmin = CTc / rdsadmin
template1 | pgsys | UTF8 | en_US.UTF-8 | en_US.UTF-8 | = c / pgsys | 7345 kB | pg_default | Standardvorlage für neue Datenbanken
: pgsys = CTc / pgsys
(5 Reihen)
Wie Sie sehen können, wird die Datenbank in den Tabellenbereich pg_default gestellt. Wenn ich jedoch den Standardtabellenbereich in der Tablespace-Klausel (auch immer noch als pgsys angemeldet ) angeben , wird ein Berechtigungsfehler angezeigt :
postgres => Datenbank-Rich2-Tablespace erstellen pg_default; FEHLER: Berechtigung für Tabellenbereich pg_default verweigert
Hier sind die Berechtigungen für diesen Benutzer:
postgres => \ du pgsys
Liste der Rollen
Rollenname | Attribute | Mitglied von
----------- + ------------- + -----------------
pgsys | Rolle erstellen | {rds_superuser}
: DB erstellen
Dies ist ein PostgreSQL-Fehler, aber ich sollte erwähnen, dass dies eine AWS Aurora-Instanz ist, falls dies einen Unterschied macht.