sql >> Database >  >> RDS >> PostgreSQL

Een postgresql-sessie/verbinding beëindigen

U kunt pg_terminate_backend() gebruiken om een ​​verbinding te beëindigen. U moet een superuser zijn om deze functie te gebruiken. Dit werkt op alle besturingssystemen hetzelfde.

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'
    ;

Voordat u deze query uitvoert, moet u de CONNECT-rechten INTREKKEN om nieuwe verbindingen te voorkomen:

REVOKE CONNECT ON DATABASE dbname FROM PUBLIC, username;

Als je Postgres 8.4-9.1 gebruikt, gebruik dan procpid in plaats van 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'
    ;


  1. Installatie van een EBS 12.2 Vision-instantie uitvoeren

  2. Hoe Oracle EBS Auditing in te stellen

  3. SQLAlchemy - SQLite voor testen en Postgresql voor ontwikkeling - Hoe overzetten?

  4. SQLite JSON_REPLACE()