PostgreSQL 101: Bağlı Kullanıcılar

PostgreSQL sistem görünümlerinden birisi olan pg_stat_activity çalışmakta olan tüm PostgreSQL arka plan işlemlerinin bir listesini tutar. Bu işlemlere hangi sorguların çalışmakta olduğu, bağlı olan kullanıcılar ve ne zaman bağlandıkları, çalışmakta olan işlem (transaction) ve sorguların başlangıç zamanı gibi bilgiler dahildir.

Belirli bir kullanıcının PostgreSQL veritabanına bağlı olup olmadığını kontrol etmek için:

SELECT dbname FROM pg_stat_activity WHERE usename = 'tolga';

Eğer bu sorgu bir sonuç döndürüyorsa, tolga kullanıcısı sisteme bağlı demektir. dbname sütunu karşılığı dönen değer ise tolga kullanıcısının bağlı olduğu veritabanı veya veritabanlarını gösterir.

“Hangi bilgisayardan bağlılar?” sorusunun cevabını arıyorsak

Genellikle, birden fazla süreç aynı kullanıcı adı ile aynı veritabanına bağlanamkta olabilir. Bu durumda bağlantıların hangi uzak sistem üzerinden yapıldığını bilmek isteyebilirsiniz. pg_stat_activity görünümü buna dair bilgileri de göstermektedir. Şöyle ki, bağlı sistemin IP adresi ve bağlantı portları bu görünümde yer alır. IP adresi ile aynı kullanıcı adı ile bağlanılan veritabanlarına kimin nereden baplandığını görebilirsiniz. Diğer taraftan port numaraları aynı uzak istemciden bağlanan aynı adlı kullanıcının farklı oturumlarını gösterir. Bu durumda aşağıdaki sorgu:

SELECT dbname, username, client_addr, client_port FROM pg_stat_activity ;

client_addr ve client_port ilgili istemciyi ve portunu, hatta uzak makinadaki süreç numarasını dahil gösterebilir.