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.