Команду SET ROLE можно использовать вместе с ALTER ROLE ... SET или ALTER DATABASE ... SET ...
В документации такой синтаксис не описан, но работает.
В результате, подключаемся под одной ролью и тут же переходим в другую. Если нужно запутаться, то это верная дорога.
postgres=# create role usr1 login; CREATE ROLE postgres=# create role usr2 login; CREATE ROLE postgres=# grant usr1 to usr2; GRANT ROLE postgres=# alter role usr2 set role usr1; ALTER ROLE postgres=# \c - usr2 You are now connected to database "postgres" as user "usr2" . postgres=> select session_user, current_user; session_user | current_user --------------+-------------- usr2 | usr1 ( 1 row) postgres=> select * from pg_db_role_setting; setdatabase | setrole | setconfig -------------+---------+------------- 0 | 24803 | {role=usr1} ( 1 row) |
Комментариев нет:
Отправить комментарий