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.
quelle