sql >> Database teknologi >  >> RDS >> PostgreSQL

Postgresql - ude af stand til at droppe database på grund af nogle automatiske forbindelser til DB

Du kan forhindre fremtidige forbindelser:

REVOKE CONNECT ON DATABASE thedb FROM public;

(og muligvis andre brugere/roller; se \l+ i psql )

Du kan derefter afslutte alle forbindelser til denne db undtagen din egen:

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

På ældre versioner pid blev kaldt procpid så du bliver nødt til at håndtere det.

Siden du har tilbagekaldt CONNECT rettigheder, hvad der end forsøgte at oprette forbindelse automatisk, burde ikke længere være i stand til at gøre det.

Du vil nu være i stand til at droppe DB.

Dette virker ikke, hvis du bruger superbrugerforbindelser til normal drift, men hvis du gør det, skal du først løse problemet.

Når du er færdig med at droppe databasen, hvis du opretter databasen igen, kan du udføre nedenstående kommando for at gendanne adgangen

GRANT CONNECT ON DATABASE thedb TO public;


  1. Hvordan gemmer man NULL-værdier i datetime-felter i MySQL?

  2. REGEXP_INSTR() Funktion i Oracle

  3. Er det muligt at slå tilbudsbehandling fra i Postgres COPY-kommandoen med CSV-format?

  4. SQL-forespørgsel for at få aggregeret resultat i kommaseparatorer sammen med gruppe for kolonne i SQL Server