SQL経由でpostgreSQLデータベースに接続しているアクティブユーザーを取得するにはどうすればよいですか?これは、ユーザーIDまたはユーザー数です。
(質問)あなたはその情報を得ませんか
select * from pg_user ;
またはビューを使用して pg_stat_activity :
select * from pg_stat_activity;
追加:
ビューは言う:
サーバープロセスごとに1行。データベースOID、データベース名、プロセスID、ユーザーOID、ユーザー名、現在のクエリ、クエリの待機ステータス、時間現在のクエリの実行、プロセスが開始された時間、およびクライアントのアドレスとポート番号。パラメーターstats_command_stringがオフにされていない限り、現在のクエリのデータをレポートする列を使用できます。さらに、これらの列は、ビューを調べているユーザーがスーパーユーザーであるか、レポート対象のプロセスを所有しているユーザーと同じ場合にのみ表示されます。
その情報をフィルタリングして取得することはできませんか?データベースの現在のユーザーになります。たとえば、開始実行時間を使用して、最後の5分間のすべてのクエリを取得できます。
そんな感じ。
Balexandreの情報を使用する:
SELECT usesysid, usename FROM pg_stat_activity;
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
)