आप SQL के माध्यम से सक्रिय उपयोगकर्ताओं को पोस्टग्रेक्यूएल डेटाबेस से कैसे जुड़ सकते हैं? यह उपयोगकर्ता का उपयोगकर्ता या संख्या हो सकती है।
आप SQL के माध्यम से सक्रिय उपयोगकर्ताओं को पोस्टग्रेक्यूएल डेटाबेस से कैसे जुड़ सकते हैं? यह उपयोगकर्ता का उपयोगकर्ता या संख्या हो सकती है।
जवाबों:
(प्रश्न) क्या आपको वह जानकारी प्राप्त नहीं है
pg_user से * सेलेक्ट करें ;
या दृश्य का उपयोग कर pg_stat_activity :
select * from pg_stat_activity;
जोड़ा गया:
दृश्य कहता है:
प्रति सर्वर प्रक्रिया की एक पंक्ति, डेटाबेस OID, डेटाबेस का नाम, प्रोसेस आईडी, उपयोगकर्ता OID, उपयोगकर्ता नाम , वर्तमान क्वेरी, क्वेरी की प्रतीक्षा स्थिति, जिस समय वर्तमान क्वेरी का निष्पादन शुरू हुआ, जिस समय प्रक्रिया शुरू हुई थी, और क्लाइंट का पता और पोर्ट नंबर । वर्तमान क्वेरी पर डेटा की रिपोर्ट करने वाले कॉलम तब तक उपलब्ध होते हैं जब तक कि पैरामीटर आँकड़े_कॉमंड_स्ट्रिंग को बंद नहीं किया जाता है। इसके अलावा, ये कॉलम केवल तभी दिखाई देते हैं जब दृश्य की जांच करने वाला उपयोगकर्ता एक सुपरयूज़र या उसी के समान होता है, जिस उपयोगकर्ता के पास इस प्रक्रिया की रिपोर्ट की जा रही है।
क्या आप उस जानकारी को फ़िल्टर और प्राप्त नहीं कर सकते? डेटाबेस पर वर्तमान उपयोगकर्ता होंगे, आप उदाहरण के लिए पिछले 5 मिनट से सभी प्रश्नों को प्राप्त करने के लिए निष्पादन समय का उपयोग कर सकते हैं ...
ऐसा कुछ।
Balexandre की जानकारी का उपयोग करना:
SELECT usesysid, usename FROM pg_stat_activity;
client_addr
क्लाइंट का IP पाने के लिए आप उपरोक्त क्वेरी को जोड़ सकते हैं ।
ओपी ने एक विशेष डेटाबेस से जुड़े उपयोगकर्ताओं के लिए कहा :
-- Who's currently connected to my_great_database?
SELECT * FROM pg_stat_activity
WHERE datname = 'my_great_database';
यह आपको सभी प्रकार की रसदार जानकारी मिलती है (जैसा कि दूसरों ने उल्लेख किया है) जैसे
usesysid
)usename
)appname
), अगर यह उस चर को सेट करने के लिए परेशान psql
करता है - करता है :-)client_addr
)query
)