windows - Sådan får du Client Machine Name/IP-adresse, der forbinder PostgreSQL Server

Indlæg af Hanne Mølgaard Plasc

Problem



Vi bruger PostgreSQL Server. Vi har brug for en forespørgsel for at få alle klientmaskinnavne, IPAdresses, der forbinder til databasen.


Fundet under forespørgsel. Men det vender tilbage kun maks. Forbindelser, tilgængelige forbindelser. Men vi har brug for klientmaskinnavne.


select max\_conn, used, res\_for\_super, max\_conn - used - res\_for\_super res\_for\_normal 
from (
  select count(*) used from pg\_stat\_activity
) t1,
(select setting::int res\_for\_super 
 from pg\_settings 
 where name=$$superuser\_reserved\_connections$$
) t2,
(select setting::int max\_conn 
 from pg\_settings 
 where name=$$max\_connections$$) t3;


SELECT inet\_client\_addr() giver ikke korrekte IP-adresser.


Har brug for hjælp i dette.

Bedste reference


https://www.postgresql.org/docs/current/static/functions-info.html[6]



  inet\_client\_addr adresse på fjernforbindelsen



som er din session IP.


https://www.postgresql.org/docs/current/static/monitoring-stats.html#PG-STAT-ACTIVITY-VIEW[7]


pg\_stat\_activity.client\_addr og pg\_stat\_activity.client\_hostname skal hjælpe dig



  client\_addr

  
  IP-adresse til klienten, der er forbundet til denne backend. Hvis dette felt er
  null, det angiver enten, at klienten er forbundet via en Unix
  socket på servermaskinen eller at dette er en intern proces sådan
  som autovacuum.

  
  client\_hostname

  
  Værtsnavn for den tilsluttede klient, som rapporteret af et omvendt DNS-opslag
  af client\_addr. Dette felt vil kun være ikke-null for IP-forbindelser,
  og kun når log\_hostname er aktiveret.



også klient IP kan være bag HAproxy eller pgbouncer eller smth ligesom ...