PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Postgresql - impossible de supprimer la base de données en raison de certaines connexions automatiques à la base de données

Vous pouvez empêcher les futures connexions :

REVOKE CONNECT ON DATABASE thedb FROM public;

(et éventuellement d'autres utilisateurs/rôles ; voir \l+ dans psql )

Vous pouvez alors mettre fin à toutes les connexions à cette base de données sauf la vôtre :

SELECT pid, pg_terminate_backend(pid) 
FROM pg_stat_activity 
WHERE datname = current_database() AND pid <> pg_backend_pid();

Sur les anciennes versions pid s'appelait procpid vous devrez donc vous en occuper.

Depuis que vous avez révoqué CONNECT droits, tout ce qui essayait de se connecter automatiquement ne devrait plus être en mesure de le faire.

Vous pourrez maintenant supprimer la base de données.

Cela ne fonctionnera pas si vous utilisez des connexions de superutilisateur pour des opérations normales, mais si vous faites cela, vous devez d'abord résoudre ce problème.

Une fois que vous avez terminé de supprimer la base de données, si vous créez à nouveau la base de données, vous pouvez exécuter la commande ci-dessous pour restaurer l'accès

GRANT CONNECT ON DATABASE thedb TO public;