如何通过SQL将活动用户连接到PostgreSQL数据库?这可以是用户标识或用户数。
如何通过SQL将活动用户连接到PostgreSQL数据库?这可以是用户标识或用户数。
Answers:
(问题)你不知道那个信息吗
选择* from pg_user ;
或使用视图pg_stat_activity:
select * from pg_stat_activity;
添加:
视图说:
每个服务器进程一行,显示数据库OID,数据库名称,进程ID,用户OID,用户名,当前查询,查询的等待状态,当前查询开始执行的时间,进程开始的时间以及客户端的地址和端口号。除非已关闭参数stats_command_string,否则将显示报告当前查询数据的列。此外,只有在检查视图的用户是超级用户或与拥有要报告其过程的用户相同的用户时,这些列才可见。
您不能过滤并获取该信息吗?这将是数据库的当前用户,例如,您可以使用开始执行时间来获取最近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
)