Sie können pg_terminate_backend() verwenden, um eine Verbindung zu beenden. Sie müssen Superuser sein, um diese Funktion nutzen zu können. Dies funktioniert auf allen Betriebssystemen gleich.
SELECT
pg_terminate_backend(pid)
FROM
pg_stat_activity
WHERE
-- don't kill my own connection!
pid <> pg_backend_pid()
-- don't kill the connections to other databases
AND datname = 'database_name'
;
Bevor Sie diese Abfrage ausführen, müssen Sie die CONNECT-Berechtigungen widerrufen, um neue Verbindungen zu vermeiden:
REVOKE CONNECT ON DATABASE dbname FROM PUBLIC, username;
Wenn Sie Postgres 8.4-9.1 verwenden, verwenden Sie procpid anstelle von pid
SELECT
pg_terminate_backend(procpid)
FROM
pg_stat_activity
WHERE
-- don't kill my own connection!
procpid <> pg_backend_pid()
-- don't kill the connections to other databases
AND datname = 'database_name'
;