आप भविष्य के कनेक्शनों को रोक सकते हैं:
REVOKE CONNECT ON DATABASE thedb FROM public;
(और संभवतः अन्य उपयोगकर्ता/भूमिकाएं; देखें \l+
psql
. में )
इसके बाद आप इस डीबी के सभी कनेक्शन समाप्त कर सकते हैं, सिवाय अपने को छोड़कर:
SELECT pid, pg_terminate_backend(pid)
FROM pg_stat_activity
WHERE datname = current_database() AND pid <> pg_backend_pid();
पुराने संस्करणों पर pid
procpid
. कहा जाता था तो आपको इससे निपटना होगा।
चूंकि आपने CONNECT
. को निरस्त कर दिया है अधिकार, जो कुछ भी ऑटो-कनेक्ट करने का प्रयास कर रहा था वह अब ऐसा करने में सक्षम नहीं होना चाहिए।
अब आप DB को ड्रॉप कर पाएंगे।
यदि आप सामान्य संचालन के लिए सुपरयूज़र कनेक्शन का उपयोग कर रहे हैं तो यह काम नहीं करेगा, लेकिन यदि आप ऐसा कर रहे हैं तो आपको पहले उस समस्या को ठीक करना होगा।
डेटाबेस को छोड़ने के बाद, यदि आप फिर से डेटाबेस बनाते हैं, तो आप एक्सेस को पुनर्स्थापित करने के लिए नीचे दिए गए कमांड को निष्पादित कर सकते हैं
GRANT CONNECT ON DATABASE thedb TO public;