今後の接続を防ぐことができます:
REVOKE CONNECT ON DATABASE thedb FROM public;
(そしておそらく他のユーザー/役割; \l+
を参照 psql
で )
その後、自分のデータベースを除くこのデータベースへのすべての接続を終了できます。
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;