Ketika saya membuat database di PostgreSQL tanpa secara eksplisit menentukan tablespace default, database dibuat tanpa masalah (saya login sebagai pengguna pgsys ):
postgres => buat database rich1; BUAT DATABASE postgres => \ l + Daftar basis data Nama | Pemilik | Pengkodean | Collation | Ctype | Akses hak istimewa | Ukuran | Tablespace | Deskripsi ----------- + ---------- + ---------- + ------------- + - ----------- + ------------------------------------- + ----------- + ------------ + ------------------------- ------------------- postgres | pgsys | UTF8 | en_US.UTF-8 | en_US.UTF-8 | | 7455 kB | pg_default | basis data koneksi administrasi standar rdsadmin | rdsadmin | UTF8 | en_US.UTF-8 | en_US.UTF-8 | rdsadmin = CTc / rdsadmin | Tidak Ada Akses | 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 kosong yang tidak dapat dimodifikasi : rdsadmin = CTc / rdsadmin template1 | pgsys | UTF8 | en_US.UTF-8 | en_US.UTF-8 | = c / pgsys | 7345 kB | pg_default | template default untuk database baru : pgsys = CTc / pgsys (5 baris)
Seperti yang Anda lihat, database dimasukkan ke dalam tablespace pg_default, tetapi jika saya menentukan tablespace default di klausa tablespace (juga masih login sebagai pgsys ) saya mendapatkan kesalahan izin:
postgres => buat database rich2 tablespace pg_default; GALAT: izin ditolak untuk tablespace pg_default
Berikut izin untuk pengguna itu:
postgres => \ du pgsys Daftar peran Nama peran | Atribut | Anggota dari ----------- + ------------- + ----------------- pgsys | Buat peran | {rds_superuser} : Buat DB
Ini adalah kesalahan PostgreSQL, tetapi saya harus menyebutkan bahwa ini adalah AWS Aurora yang dapat membuat perbedaan.