Jawaban:
ALTER DATABASE name OWNER TO new_owner;
Lihat entri manual Postgresql tentang ini untuk lebih jelasnya.
ERROR: must be member of role ...= JANGAN BEKERJA DENGAN RDS
Jawaban Frank Heikens hanya akan memperbarui kepemilikan basis data. Seringkali, Anda juga ingin memperbarui kepemilikan objek yang ada (termasuk tabel). Dimulai dengan Postgres 8.2, REASSIGN OWNED tersedia untuk menyederhanakan tugas ini.
EDIT PENTING!
Jangan pernah gunakan REASSIGN OWNEDketika peran aslinya postgres, ini bisa merusak seluruh instance DB Anda. Perintah akan memperbarui semua objek dengan pemilik baru, termasuk sumber daya sistem (postgres0, postgres1, dll.)
Pertama, sambungkan ke database admin dan perbarui kepemilikan DB:
psql
postgres=# REASSIGN OWNED BY old_name TO new_name;
Ini adalah setara global ALTER DATABASEperintah yang diberikan dalam jawaban Frank, tetapi alih-alih memperbarui DB tertentu, itu mengubah kepemilikan semua DB yang dimiliki oleh 'old_name'.
Langkah selanjutnya adalah memperbarui kepemilikan tabel untuk setiap database:
psql old_name_db
old_name_db=# REASSIGN OWNED BY old_name TO new_name;
Ini harus dilakukan pada setiap DB yang dimiliki oleh 'old_name'. Perintah akan memperbarui kepemilikan semua tabel di DB.
postgres, dirinya sendiri ... Mempelajari itu dengan cara yang sulit.
REASSIGN OWNED(biasanya karena pemiliknya postgres), lihat snippet di stackoverflow.com/a/2686185/1839209 .