Anda dapat mencegah koneksi di masa mendatang:
REVOKE CONNECT ON DATABASE thedb FROM public;
(dan mungkin pengguna/peran lain; lihat \l+
di psql
)
Anda kemudian dapat menghentikan semua koneksi ke db ini kecuali milik Anda sendiri:
SELECT pid, pg_terminate_backend(pid)
FROM pg_stat_activity
WHERE datname = current_database() AND pid <> pg_backend_pid();
Pada versi lama pid
disebut procpid
jadi Anda harus menghadapinya.
Karena Anda telah mencabut CONNECT
hak, apa pun yang mencoba menyambung otomatis seharusnya tidak lagi dapat melakukannya.
Sekarang Anda dapat menghapus DB.
Ini tidak akan berfungsi jika Anda menggunakan koneksi pengguna super untuk operasi normal, tetapi jika Anda melakukannya, Anda harus memperbaiki masalah itu terlebih dahulu.
Setelah Anda selesai menjatuhkan database, jika Anda membuat database lagi, Anda dapat menjalankan perintah di bawah ini untuk memulihkan akses
GRANT CONNECT ON DATABASE thedb TO public;