Quando creo un database in PostgreSQL senza specificare esplicitamente un tablespace predefinito, il database viene creato senza problemi (ho effettuato l'accesso come utente pgsys ):
postgres => crea database rich1;
CREA DATABASE
postgres => \ l +
Elenco di database
Nome | Proprietario | Codifica | Collazione | Ctype | Privilegi di accesso | Dimensione | Tablespace | Descrizione
----------- + ---------- + ---------- + ------------- + - ----------- + ------------------------------------- + ----------- + ------------ + ------------------------- -------------------
Postgres | pgsys | UTF8 | en_US.UTF-8 | en_US.UTF-8 | | 7455 kB | pg_default | database delle connessioni amministrative predefinito
rdsadmin | rdsadmin | UTF8 | en_US.UTF-8 | en_US.UTF-8 | rdsadmin = CTc / rdsadmin | Nessun accesso | 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 | database vuoto non modificabile
: rdsadmin = CTc / rdsadmin
template1 | pgsys | UTF8 | en_US.UTF-8 | en_US.UTF-8 | = c / pgsys | 7345 kB | pg_default | modello predefinito per nuovi database
: pgsys = CTc / pgsys
(5 file)
Come puoi vedere, il database viene inserito nel tablespace pg_default, ma se specifico il tablespace predefinito nella clausola tablespace (anch'esso ancora registrato come pgsys ) ottengo un errore di autorizzazione:
postgres => crea database rich2 tablespace pg_default; ERRORE: autorizzazione negata per tablespace pg_default
Ecco le autorizzazioni per quell'utente:
postgres => \ du pgsys
Elenco dei ruoli
Nome del ruolo | Attributi | Membro di
----------- + ------------- + -----------------
pgsys | Crea ruolo | {} Rds_superuser
: Crea DB
Questo è un errore PostgreSQL, ma dovrei menzionare che si tratta di un'istanza di AWS Aurora nel caso in cui ciò faccia la differenza.