sql >> Databáze >  >> RDS >> PostgreSQL

Postgresql - nelze zrušit databázi kvůli některým automatickým připojením k DB

Budoucím připojením můžete zabránit:

REVOKE CONNECT ON DATABASE thedb FROM public;

(a možná i další uživatelé/role; viz \l+ v psql )

Poté můžete ukončit všechna připojení k této databázi kromě svého:

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

Na starších verzích pid se jmenoval procpid takže se s tím budete muset vypořádat.

Protože jste odvolali CONNECT práva, cokoli, co se pokoušelo o automatické připojení, by to již nemělo mít možnost.

Nyní budete moci zrušit DB.

Toto nebude fungovat, pokud pro normální operace používáte připojení superuživatele, ale pokud to děláte, musíte nejprve vyřešit tento problém.

Po odstranění databáze, pokud databázi znovu vytvoříte, můžete provést níže uvedený příkaz a obnovit přístup

GRANT CONNECT ON DATABASE thedb TO public;


  1. Integrujte Firebase s PHP pro komunikaci v reálném čase

  2. PostgreSQL ekvivalent pro TOP n WITH TIES:LIMIT with ties?

  3. 6 důvodů, proč může Microsoft Access pomoci vaší firmě

  4. Vytvořte spouštěč „místo“ na serveru SQL Server