【发布时间】:2010-10-02 15:39:45
【问题描述】:
如何让活动用户通过 SQL 连接到 postgreSQL 数据库?这可能是用户 ID 或用户数。
【问题讨论】:
标签: sql postgresql active-users
如何让活动用户通过 SQL 连接到 postgreSQL 数据库?这可能是用户 ID 或用户数。
【问题讨论】:
标签: sql postgresql active-users
(问题)你没有得到那个信息
从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';
这会让你得到all sorts of juicy info(正如其他人提到的那样),例如
usesysid 列)usename)appname),如果需要设置该变量 -- psql 会:-)client_addr)query)【讨论】: