Функции сквозной аутентификации
Функции, представленные в данном разделе, реализованы в рамках функциональности сквозной аутентификации.
КомандыSHOW доступны в «виртуальной» административной базе данных pgbouncer. Подробнее об этом в разделе «Администрирование Pangolin Pooler» документа «Руководство администратора».
auth_reset_context()
Функция сбрасывает/очищает контекст аутентификаций.
Синтаксис:
auth_reset_context()
RETURNS VOID
Входные параметры:
Отсутствуют.
Возвращаемые значения:
Отсутствуют. В случае успешного выполнения функции значение вернется пустым.
Пример использования:
SELECT auth_reset_context();
SHOW AUTHSERVERS
Функция показывает информацию о соединениях с сервером аутентификации в виде таблицы.
Синтаксис:
SHOW AUTHSERVERS;
Входные параметры:
Отсутствуют.
Возвращаемые значения:
Информация о соединениях с сервером аутентификации возвращается в виде таблицы со следующими полями:
| Название поля | Описание |
|---|---|
type | Тип соединения, «A» для серверов аутентификации |
database | Имя базы данных |
state | Состояние подключения к серверу Pangolin Pooler. Значения: active, used или idle |
addr | IP-адрес сервера СУБД |
port | Порт сервера СУБД |
local_addr | Исходный адрес подключения на локальной машине |
local_port | Исходный порт подключения на локальной машине |
connect_time | Время установления подключения |
loged_in_time | Время подключения (время когда получен ответ на handshake запрос) |
request_time | Время выдачи последнего запроса |
ptr | Адрес внутреннего объекта для данного подключения. Используется как уникальный идентификатор |
tls | Информация о TLS-подключении. Пустая строка, если TLS не используется |
Пример использования:
SHOW AUTHSERVERS;
Пример вывода:
type | database | state | addr | port | local_addr | local_port | connect_time | loged_in_time | request_time | ptr | tls
------+----------+-------+--------------+--------+--------------+------------+-------------------------+-------------------------+-------------------------+-----------+------------------------------------------------
A | postgres | idle | <IP-Address> | <port> | <IP-Address> | <port> | 2025-10-16 08:22:26 MSK | 2025-10-16 08:22:27 MSK | 2025-10-16 08:22:27 MSK | 0x15bc350 | TLSv1.3/TLS_AES_256_GCM_SHA384/ECDH=prime256v1
(1 row)
SHOW AUTHPOOLS
Функция показывает информацию по пулам аутентификации в виде таблицы.
Синтаксис:
SHOW AUTHPOOLS;
Входные параметры:
Отсутствуют.
Возвращаемые значения:
Информация по пулам аутентификации возвращается в виде таблицы со следующими полями:
| Название поля | Описание |
|---|---|
database | Имя базы данных |
cl_auth | Число клиентских подключений, которые выполняют запрос аутентификации к серверу аутентификации |
sv_active | Подключения к серверу, которые используется в данный момент |
sv_idle | Подключения к серверу, которые не используется в данный момент |
sv_used | Подключения к серверу, которые простаивали более server_check_delay секунд, поэтому перед повторным использованием им требуется server_check_query секунд |
sv_tested | Подключения к серверу, которые в данный момент выполняются либо server_reset_query, либо server_check_query |
sv_login | Подключения к серверу, находящиеся в процессе входа в систему |
maxwait | Показывает, как долго ожидает в очереди самый первый клиент (в секундах). Если это число начинает увеличиваться, значит текущий пул серверов не справляется с запросами достаточно быстро |
maxwait_us | Микросекундная часть максимального времени ожидания |
Пример использования:
SHOW AUTHPOOLS;
Пример вывода:
database | cl_auth | cl_active_auth | sv_active | sv_idle | sv_used | sv_tested | sv_login | maxwait | maxwait_us
----------+---------+----------------+-----------+---------+---------+-----------+----------+---------+------------
postgres | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0
(1 row)
SHOW AUTHUSERS
Функция показывает информацию о пользователях в виде таблицы.
Синтаксис:
SHOW AUTHUSERS;
Входные параметры:
Отсутствуют.
Возвращаемые значения:
Информация о пользователях возвращается в виде таблицы со следующими полями:
| Название поля | Описание |
|---|---|
name | Имя пользователя |
addr | IP-адрес клиента |
port | Порт клиента |
database | Имя базы данных |
pool_mode | Переопределить режим пула базы данных или оставить значение NULL, если будет использоваться значение по умолчанию |
Пример использования:
SHOW AUTHUSERS;
Пример вывода:
name | addr | port | database | pool_mode | tls | auth_state
----------+--------------+--------+----------+-----------+-----+------------
postgres | <IP-Address> | <port> | postgres | | yes | done
(q rows)
SHOW LAST
Функция показывает информацию об аутентификации последних N пользователей в виде таблицы.
Синтаксис:
SHOW LAST;
Входные параметры:
Отсутствуют.
Возвращаемые значения:
Информация об аутентификации последних N пользователей возвращается в виде таблицы со следующими полями:
| Название поля | Описание |
|---|---|
user | Имя пользователя |
addr | IP-адрес клиента |
port | Порт клиента |
tls | Информация о TLS-подключении. Пустая строка, если TLS не используется |
method | Метод аутентификации (например, md5, scram-sha-256, ldap, cert). Отображается только для аутентифицированных пользователей |
place | Место выполнения аутентификации (Pangolin Pooler, Pangolin DBMS) |
status | Статус аутентификации (ok, failed, expired) |
connect_time | Время установления подключения |
wait | Показывает, как долго ожидает в очереди клиент перед тем как начал выполнять аутентификацию (в секундах) |
wait_us | Микросекундная часть времени ожидания |
auth_time | Время выполнения аутентификации (получения статуса аутентификации) |
auth | Показывает, как долго выполняется аутентификация (в секундах). Если это число начинает увеличиваться, значит текущий сервер аутентификации не справляется с запросами достаточно быстро. Причиной тому может быть перегруженный сервер, а в случае внешних аутентификаций (GSS, LDAP, RADIUS) перегруженный сервер аутентификации |
auth_us | Микросекундная часть времени выполнения аутентификации |
N пользователей задается параметром auth_last_size в конфигурационном файле Pangolin Pooler. По умолчанию имеет значение 10.
При превышении этого значения первые записи удаляются, а новые добавляются в конец. Ошибка аутентификации указана в логах Pangolin или Pangolin Pooler. В каком логе и в какое время — зависит от значений параметров place и connect_time/auth_time.
Пример использования:
SHOW LAST;
Пример вывода:
user | addr | port | tls | method | place | status | connect_time | wait | wait_us | auth_time | auth | auth_us
-----------+--------------+-------+-----+---------------+-----------+--------+-------------------------+------+---------+-------------------------+------+---------
pgbouncer | <IP-Address> | 53440 | yes | scram-sha-256 | pgbouncer | failed | 2025-10-15 15:38:47 MSK | 0 | 3594 | 2025-10-15 15:38:47 MSK | 0 | 4462
pgbouncer | <IP-Address> | 53444 | no | scram-sha-256 | pgbouncer | failed | 2025-10-15 15:38:47 MSK | 0 | 0 | 2025-10-15 15:38:47 MSK | 0 | 4503
pgbouncer | <IP-Address> | 52030 | yes | scram-sha-256 | pgbouncer | failed | 2025-10-15 15:39:46 MSK | 0 | 3279 | 2025-10-15 15:39:46 MSK | 0 | 4727
pgbouncer | <IP-Address> | 52034 | no | scram-sha-256 | pgbouncer | failed | 2025-10-15 15:39:46 MSK | 0 | 0 | 2025-10-15 15:39:46 MSK | 0 | 4436
pgbouncer | <IP-Address> | 46778 | yes | scram-sha-256 | pgbouncer | ok | 2025-10-15 15:42:46 MSK | 0 | 3566 | 2025-10-15 15:42:46 MSK | 0 | 4722
pgbouncer | <IP-Address> | 41736 | yes | scram-sha-256 | pgbouncer | ok | 2025-10-15 15:45:42 MSK | 0 | 2805 | 2025-10-15 15:45:42 MSK | 0 | 4533
pgbouncer | <IP-Address> | 47472 | yes | scram-sha-256 | pgbouncer | ok | 2025-10-16 08:21:44 MSK | 0 | 4191 | 2025-10-16 08:21:44 MSK | 0 | 5411
postgres | <IP-Address> | 49692 | yes | | postgres | ok | 2025-10-16 08:22:26 MSK | 0 | 4752 | 2025-10-16 08:22:26 MSK | 0 | 160765
SHOW LOCKED_USERS
Функция показывает информацию о заблокированных пользователях. К ним относятся пользователи с идентичными типом соединения, адресом клиента, базой данных и именем. Блокировка происходит после N раз неудачно осуществленной подряд аутентификации (значение N определяется конфигурационным параметром auth_failure_threshold). Длительность блокировки пользователя соответствует значению параметра auth_inactivity_period.
Синтаксис:
SHOW LOCKED_USERS;
Входные параметры:
Отсутствуют.
Возвращаемые значения:
Информация о заблокированных пользователях возвращается в виде таблицы со следующими полями:
| Название поля | Описание |
|---|---|
user | Имя пользователя |
addr | IP-адрес клиента |
port | Порт клиента |
database | Имя базы данных |
begin | Время начала блокировки |
end | Время окончания блокировки |
Пример использования:
SHOW LOCKED_USERS;
Пример вывода:
user | addr | port | tls | database | begin | end
-------+--------------+-------+-----+-----------+-------------------------+-------------------------
admin | <IP-Address> | 33496 | no | globalind | 2025-10-23 11:39:02 MSK | 2025-10-23 11:40:02 MSK
admin | <IP-Address> | 33494 | yes | globalind | 2025-10-23 11:39:03 MSK | 2025-10-23 11:40:03 MSK
(2 rows)
SHOW SERVERS
Функция показывает информацию о соединениях с сервером Pangolin.
Синтаксис:
SHOW SERVERS;
Входные параметры:
Отсутствуют.
Возвращаемые значения:
Информация о соединениях с сервером возвращается в виде таблицы со следующими полями:
| Название поля | Описание |
|---|---|
type | Тип соединения, «S» для сервера |
user | Имя пользователя, используемое Pangolin Pooler для подключения к серверу |
database | Имя базы данных |
replication | Если для подключения к серверу используется репликация. Значение none, logical или physical |
state | Состояние подключения к серверу Pangolin Pooler. Значения: active, idle, used, tested, new, active_cancel, being_canceled |
addr | IP-адрес сервера СУБД |
port | Порт сервера СУБД |
local_addr | Локальный адрес начала подключения |
local_port | Локальный порт начала подключения |
connect_time | Когда было установлено соединение |
loged_in_time | Время подключения |
loged_in | Длительность поднятия соединения (в секундах) |
loged_in_us | Микросекундная часть длительности поднятия соединения |
request_time | Когда был отправлен последний запрос |
wait | Не используется для подключений к серверу |
wait_us | Не используется для подключений к серверу |
close_needed | Флаг закрытия: 1 если соединение будет закрыто как можно скорее, потому что идет перезагрузка файла конфигурации или обновление DNS изменило информацию о соединении, или было выдано RECONNECT |
ptr | Адрес внутреннего объекта подключения |
link | Адрес клиентского соединения, с которым сопряжен сервер |
remote_pid | PID процесса серверной стороны |
tls | Информация о TLS-соединении или пустая строка, если TLS не используется |
application_name | Имя приложения, ассоциированное со связанным клиентским соединением, или пустая строка, если приложение не установлено или нет соединения |
prepared_statements | Количество подготовленных запросов на сервере, ограниченное значением max_prepared_statements |
id | Уникальный идентификатор для сервера |
Пример использования:
SHOW SERVERS \gx
Пример вывода:
-[ RECORD 1 ]-------+-----------------------------------------------
type | A
user | (nouser)
database | postgres
replication | none
state | idle
addr | <IP-Address>
port | 5544
local_addr | <IP-Address>
local_port | <port>
connect_time | 2025-10-16 08:22:26 MSK
loged_in_time | 2025-10-16 08:22:27 MSK
request_time | 2025-10-16 08:22:27 MSK
wait | 0
wait_us | 0
logged_in | 0
logged_in_us | 104997
close_needed | 0
ptr | 0x15bc350
link |
remote_pid | 0
tls | TLSv1.3/TLS_AES_256_GCM_SHA384/ECDH=prime256v1
application_name |
prepared_statements | 0
id | 9
-[ RECORD 2 ]-------+-----------------------------------------------
type | S
user | postgres
database | postgres
replication | none
state | idle
addr | <IP-Address>
port | 5433
local_addr | <IP-Address>
local_port | 37368
connect_time | 2025-10-16 08:22:27 MSK
loged_in_time | 2025-10-16 08:22:27 MSK
request_time | 2025-10-16 08:26:39 MSK
wait | 0
wait_us | 0
logged_in | 0
logged_in_us | 53986
close_needed | 0
ptr | 0x15e0940
link |
remote_pid | 2754164
tls | TLSv1.3/TLS_AES_256_GCM_SHA384/ECDH=prime256v1
application_name | psql
prepared_statements | 0
id | 10
SHOW POOLS
Функция показывает информацию по пулам. Новый пул создается для каждой пары сущностей (база данных, пользователь).
Синтаксис:
SHOW POOLS;
Входные параметры:
Отсутствуют.
Возвращаемые значения:
Информация по пулам возвращается в виде таблицы со следующими полями:
| Название поля | Описание |
|---|---|
database | Имя базы данных |
user | Имя пользователя |
cl_active | Клиентские подключения, которые либо связаны с серверными подключениями, либо находятся в режиме ожидания без запросов на обработку |
cl_waiting | Клиентские соединения, которые отправили запросы, но еще не получили подключения к серверу |
cl_active_cancel_req | Клиентские подключения, которые передали запросы на отмену на сервер и ожидают ответа сервера |
cl_waiting_cancel_req | Клиентские соединения, которые еще не отправили на сервер отмены запроса |
sv_active | Соединения с сервером, которые связаны с клиентом |
sv_active_cancel | Подключения к серверу, которые в данный момент пересылают запрос на отмену |
sv_being_canceled | Серверы, которые обычно могут простаивать, но не делают этого до тех пор, пока не будут выполнены все запросы на отмену в процессе выполнения, отправленные для отмены запроса на этом сервере |
sv_idle | Соединения с сервером, которые не используются и могут быть немедленно использованы для клиентских запросов |
sv_used | Подключения к серверу, которые простаивали более server_check_delay секунд, поэтому перед повторным использованием им требуется server_check_query секунд |
sv_tested | Подключения к серверу, которые в данный момент выполняются либо server_reset_query, либо server_check_query |
sv_login | Подключения к серверу в данный момент находятся в процессе входа в систему |
maxwait | Сколько секунд ждал первый клиент в очереди. Если это значение начинает расти, значит, текущий пул серверов не обрабатывает запросы достаточно быстро. Причиной может быть либо перегрузка сервера, либо слишком маленький размер пула |
maxwait_us | Микросекундная часть максимального времени ожидания |
avg_time | Среднее время поднятия пула с учетом аутентификации (в секундах) |
avg_time_us | Дробная часть среднего времени поднятия пула (в микросекундах) |
max_time | Максимальное время поднятия пула с учетом аутентификации (в секундах) |
max_time_us | Максимальное время поднятия пула (в микросекундах) |
pool_mode | Используемый режим пула |
load_balance_hosts | Если хост пула содержит список, разделенный запятыми, используется load_balance_hosts |
Пример использования:
SHOW POOLS \gx
Пример вывода:
-[ RECORD 1 ]---------+------------
database | pgbouncer
user | pgbouncer
cl_active | 1
cl_waiting | 0
cl_active_cancel_req | 0
cl_waiting_cancel_req | 0
sv_active | 0
sv_active_cancel | 0
sv_being_canceled | 0
sv_idle | 0
sv_used | 0
sv_tested | 0
sv_login | 0
maxwait | 0
maxwait_us | 0
avg_time | 0
avg_time_us | 0
max_time | 0
max_time_us | 0
pool_mode | statement
load_balance_hosts |
-[ RECORD 2 ]---------+------------
database | postgres
user | postgres
cl_active | 1
cl_waiting | 0
cl_active_cancel_req | 0
cl_waiting_cancel_req | 0
sv_active | 0
sv_active_cancel | 0
sv_being_canceled | 0
sv_idle | 0
sv_used | 1
sv_tested | 0
sv_login | 0
maxwait | 0
maxwait_us | 0
avg_time | 0
avg_time_us | 53986
max_time | 0
max_time_us | 53986
pool_mode | transaction
load_balance_hosts |
SHOW LISTS
Функция показывает различные внутренние сведения, в столбцах (не строках).
Синтаксис:
SHOW LISTS;
Входные параметры:
Отсутствуют.
Возвращаемые значения:
Информация о различных внутренних сведениях возвращается в виде таблицы со следующими полями:
| Название поля | Описание |
|---|---|
databases | Количество баз данных |
users | Количество пользователей |
pools | Количество пулов |
free_clients | Количество свободных клиентов. Клиенты, которые отключились, но Pangolin Pooler сохраняет выделенную для них память |
used_clients | Количество использованных клиентов |
login_clients | Количество клиентов в состоянии входа в систему |
free_servers | Количество свободных серверов. Отключенные серверы, но Pangolin Pooler сохраняет выделенную для них память |
used_servers | Количество использованных серверов |
auth_pools | Число пулов аутентификации |
free_auth_servers | Число свободных серверов аутентификации |
used_auth_servers | Число задействованных серверов аутентификации |
dns_names | Количество DNS-имен в кеше |
dns_zones | Количество DNS-зон в кеше |
dns_queries | Количество DNS-запросов в полете |
dns_pending | Не используется |
Пример использования:
SHOW LISTS;
Пример вывода:
list | items
-------------------+-------
databases | 2
users | 2
peers | 0
pools | 2
peer_pools | 0
free_clients | 48
used_clients | 2
login_clients | 0
free_servers | 49
used_servers | 1
auth_pools | 1
free_auth_servers | 50
used_auth_servers | 0
dns_names | 1
dns_zones | 1
dns_queries | -1
dns_pending | 0
(17 rows)