Aktif kullanıcıların bir postgreSQL veritabanına SQL aracılığıyla bağlanmasını nasıl sağlayabilirsiniz? Bu, kullanıcı kimliği veya kullanıcı sayısı olabilir.
Aktif kullanıcıların bir postgreSQL veritabanına SQL aracılığıyla bağlanmasını nasıl sağlayabilirsiniz? Bu, kullanıcı kimliği veya kullanıcı sayısı olabilir.
Yanıtlar:
(soru) Bu bilgiyi anlamıyor musun
pg_user'dan * seçin ;
veya pg_stat_activity görünümünü kullanarak :
select * from pg_stat_activity;
Katma:
görünüm diyor ki:
Sunucu işlemi başına bir satır, veritabanı OID'sini, veritabanı adını, işlem kimliğini, kullanıcı OID'sini, kullanıcı adını , geçerli sorguyu, sorgunun bekleme durumunu, geçerli sorgunun yürütülmeye başladığı zamanı, işlemin başlatıldığı zamanı ve müşterinin adresini ve bağlantı noktası numarası . Geçerli sorguya ilişkin verileri raporlayan sütunlar, stats_command_string parametresi kapatılmadıkça kullanılabilir. Ayrıca, bu sütunlar yalnızca görünümü inceleyen kullanıcı bir süper kullanıcıysa veya rapor edilen işlemin sahibi olan kullanıcıyla aynıysa görünür.
bu bilgiyi filtreleyip alamaz mısın? Bu, Veritabanındaki mevcut kullanıcılar olacaktır, örneğin son 5 dakikadaki tüm sorguları almak için başlatılan yürütme zamanını kullanabilirsiniz ...
bunun gibi bir şey.
Balexandre'nin bilgilerini kullanma:
SELECT usesysid, usename FROM pg_stat_activity;
client_addr
İstemcinin IP adresini almak için yukarıdaki sorguya ekleme yapabilirsiniz .
OP, belirli bir veritabanına bağlı kullanıcıları sordu :
-- Who's currently connected to my_great_database?
SELECT * FROM pg_stat_activity
WHERE datname = 'my_great_database';
Bu size her türden ilginç bilgiyi (diğerlerinin de bahsettiği gibi) getirir.
usesysid
)usename
)appname
), bu değişkeni ayarlamak zorsa - psql
yapar :-)client_addr
)query
)