PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Убийте сесия/връзка на postgresql

Можете да използвате pg_terminate_backend(), за да прекратите връзка. Трябва да сте суперпотребител, за да използвате тази функция. Това работи еднакво на всички операционни системи.

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

Преди да изпълните тази заявка, трябва да ОТМЕНИТЕ привилегиите CONNECT, за да избегнете нови връзки:

REVOKE CONNECT ON DATABASE dbname FROM PUBLIC, username;

Ако използвате Postgres 8.4-9.1, използвайте procpid вместо 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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Автоматизиране на одитите на сигурността за PostgreSQL

  2. Целочислени масиви на Postgres като параметри?

  3. Как да пишем с главни букви първата буква на всяка дума в PostgreSQL

  4. Таблица с координати на шестоъгълна мрежа, която покрива света

  5. Изтриване на записи от отдалечена postgresql база данни с помощта на локално предоставен списък