Можете да предотвратите бъдещи връзки:
REVOKE CONNECT ON DATABASE thedb FROM public;
(и евентуално други потребители/роли; вижте \l+
в psql
)
След това можете да прекратите всички връзки към тази db, освен вашата собствена:
SELECT pid, pg_terminate_backend(pid)
FROM pg_stat_activity
WHERE datname = current_database() AND pid <> pg_backend_pid();
На по-стари версии pid
беше наречен procpid
така че ще трябва да се справите с това.
Тъй като сте отменили CONNECT
права, каквото и да се опитваше да се свърже автоматично, вече не би трябвало да може да го прави.
Вече ще можете да пуснете DB.
Това няма да работи, ако използвате връзки на суперпотребител за нормални операции, но ако го правите, първо трябва да отстраните този проблем.
След като приключите с премахването на базата данни, ако създадете базата данни отново, можете да изпълните командата по-долу, за да възстановите достъпа
GRANT CONNECT ON DATABASE thedb TO public;