Как подключить активных пользователей к базе данных postgreSQL через SQL? Это может быть идентификатор пользователя или количество пользователей.
Как подключить активных пользователей к базе данных postgreSQL через SQL? Это может быть идентификатор пользователя или количество пользователей.
Ответы:
(вопрос) Разве вы не получили эту информацию в
выберите * из pg_user ;
или используя представление pg_stat_activity :
select * from pg_stat_activity;
Добавлено:
вид говорит:
Одна строка для каждого серверного процесса, показывающая OID базы данных, имя базы данных, идентификатор процесса, 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
)