Como você pode conectar os usuários ativos a um banco de dados postgreSQL via SQL? Pode ser o ID do usuário ou o número de usuários.
Como você pode conectar os usuários ativos a um banco de dados postgreSQL via SQL? Pode ser o ID do usuário ou o número de usuários.
Respostas:
(pergunta) Não coloque essa informação em
select * from pg_user ;
ou usando a visualização pg_stat_activity :
select * from pg_stat_activity;
Adicionado:
a vista diz:
Uma linha por processo do servidor, mostrando OID do banco de dados, nome do banco de dados, ID do processo, OID do usuário, nome do usuário , consulta atual, status de espera da consulta, hora em que a consulta atual começou a execução, hora em que o processo foi iniciado e endereço do cliente e número da porta . As colunas que relatam dados na consulta atual estão disponíveis, a menos que o parâmetro stats_command_string tenha sido desativado. Além disso, essas colunas só são visíveis se o usuário que está examinando a visualização for um superusuário ou o mesmo usuário que possui o processo que está sendo relatado.
você não pode filtrar e obter essas informações? que serão os usuários atuais no banco de dados, você pode usar o tempo de execução de início para obter todas as consultas dos últimos 5 minutos, por exemplo ...
algo parecido.
Usando as informações de balexandre:
SELECT usesysid, usename FROM pg_stat_activity;
client_addr
à consulta acima para obter o IP do cliente.
O OP solicitou usuários conectados a um banco de dados específico :
-- Who's currently connected to my_great_database?
SELECT * FROM pg_stat_activity
WHERE datname = 'my_great_database';
Isso fornece a você todos os tipos de informações interessantes (como outros mencionaram), como
usesysid
)usename
)appname
), se incomoda em definir essa variável - psql
faz :-)client_addr
)query
)