Найти пользователей, вошедших в PostgreSQL

Вопрос: Есть ли запрос, который вернет всех пользователей, которые в настоящее время зарегистрированы в PostgreSQL?
Ответ: В PostgreSQL есть системное представление с именем pg_stat_activity, которое показывает текущие процессы, выполняемые в базе данных. Вы можете запустить запрос к этому системному представлению, который возвращает всех пользователей, у которых в данный момент запущен процесс в базе данных PostgreSQL.
Чтобы получить всех пользователей, вошедших в PostgreSQL, вы можете выполнить следующий SQL-запрос:

Этот SELECT оператор возвращает пользователей, которые в данный момент выполняют процесс в PostgreSQL.

СОВЕТ. У вас должны быть права суперпользователя для просмотра процеccов, принадлежащих другим пользователям. В противном случае вы увидите только свои собственные процессы.

Представление pg_stat_activity содержит следующие столбцы :

Столбец Пояснение
datid Идентификатор базы данных, где запущен процесс
datname Имя базы данных, где запущен процесс
pid Идентификатор процесса
usesysid Идентификатор пользователя (номер, назначенный PostgreSQL)
usename Имя пользователя (например: postgres, trizor и т.д.)
application_name Имя приложения
client_addr Адрес клиента
client_hostname Имя хоста клиента
client_port Номер порта клиента
backend_start
xact_start
query_start Время запуска запроса
state_change Время, когда состояние запроса было изменено
waiting Логическое значение, указывающее состояние ожидания запроса (t или f)
state Состояние запроса (т.е.: idle, active)
query Текущий запрос