Обсуждение: SET SESSION AUTHORIZATION command doesn't update status of backend

Поиск
Список
Период
Сортировка

SET SESSION AUTHORIZATION command doesn't update status of backend

От
"Andrey V. Lepikhov"
Дата:
Hi,

Nikita Degtyarev (n.degtyarev@postgrespro.ru) reported a suspicious 
behaviour of a SET SESSION AUTHORIZATION command. If you switch user in 
a session:

CREATE USER abc;
SET SESSION AUTHORIZATION abc;

command "SELECT SESSION_USER, CURRENT_USER" shows us:

  session_user | current_user
--------------+--------------
  abc          | abc

But if you launch a job:
SELECT pg_sleep(60);

and will see into the pg_stat_activity:

SELECT usename,query FROM pg_stat_activity
WHERE backend_type = 'client backend';

it tell you that this job is executing with the original user:

  usename |                   query
---------+--------------------------------------------
  andrey  | SELECT usename,query FROM pg_stat_activity+
          | WHERE backend_type = 'client backend';
  abc     | SELECT pg_sleep(60);

The deal is in missed update of PgBackendStatus after updating of 
session user.
The attached patch fixes this bug.

-- 
regards,
Andrey Lepikhov
Postgres Professional

Вложения

Re: SET SESSION AUTHORIZATION command doesn't update status of backend

От
Tom Lane
Дата:
"Andrey V. Lepikhov" <a.lepikhov@postgrespro.ru> writes:
> Nikita Degtyarev (n.degtyarev@postgrespro.ru) reported a suspicious 
> behaviour of a SET SESSION AUTHORIZATION command. If you switch user in 
> a session:
> [ pg_stat_activity doesn't change ]

I don't think this is a bug.  pg_stat_activity is reporting the session's
login identity, and that seems fine, though maybe the documentation about
it needs to be clarified.

            regards, tom lane



Re: SET SESSION AUTHORIZATION command doesn't update status of backend

От
Andrey Lepikhov
Дата:
On 15/10/21 18:50, Tom Lane wrote:
> I don't think this is a bug.  pg_stat_activity is reporting the session's
> login identity, and that seems fine, though maybe the documentation about
> it needs to be clarified.
Thank you. Documentation is quite correct. I should be more attentive.

-- 
regards,
Andrey Lepikhov
Postgres Professional