คุณจะให้ผู้ใช้ที่ใช้งานอยู่เชื่อมต่อกับฐานข้อมูล postgreSQL ผ่าน SQL ได้อย่างไร อาจเป็นรหัสผู้ใช้หรือจำนวนผู้ใช้
คุณจะให้ผู้ใช้ที่ใช้งานอยู่เชื่อมต่อกับฐานข้อมูล postgreSQL ผ่าน SQL ได้อย่างไร อาจเป็นรหัสผู้ใช้หรือจำนวนผู้ใช้
คำตอบ:
(คำถาม) คุณไม่ได้รับข้อมูลนั้น
เลือก * จากpg_user ;
หรือใช้มุมมองpg_stat_activity :
select * from pg_stat_activity;
เพิ่ม:
มุมมองกล่าวว่า:
หนึ่งแถวต่อกระบวนการเซิร์ฟเวอร์แสดง OID ของฐานข้อมูลชื่อฐานข้อมูล ID กระบวนการ OID ของผู้ใช้ชื่อผู้ใช้แบบสอบถามปัจจุบันสถานะการรอของแบบสอบถามเวลาที่แบบสอบถามปัจจุบันเริ่มดำเนินการเวลาที่กระบวนการเริ่มต้นและที่อยู่ของไคลเอ็นต์และ หมายเลขพอร์ต คอลัมน์ที่รายงานข้อมูลในการสืบค้นปัจจุบันจะพร้อมใช้งานเว้นแต่ว่าจะปิดพารามิเตอร์ stats_command_string นอกจากนี้คอลัมน์เหล่านี้จะมองเห็นได้ก็ต่อเมื่อผู้ใช้ที่ตรวจสอบมุมมองนั้นเป็น superuser หรือเหมือนกับผู้ใช้ที่เป็นเจ้าของกระบวนการที่ถูกรายงาน
คุณไม่สามารถกรองและรับข้อมูลนั้นได้หรือไม่? ที่จะเป็นผู้ใช้ปัจจุบันบนฐานข้อมูลคุณสามารถใช้เวลาเริ่มดำเนินการเพื่อรับแบบสอบถามทั้งหมดจาก 5 นาทีสุดท้ายเช่น ...
อะไรแบบนั้น.
ใช้ข้อมูลของ balexandre:
SELECT usesysid, usename FROM pg_stat_activity;
client_addr
ในแบบสอบถามด้านบนเพื่อรับ IP ของลูกค้า
OP ขอผู้ใช้ที่เชื่อมต่อกับฐานข้อมูลเฉพาะ :
-- 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
)