Можно ли изменить роль postgresql, которую пользователь использует при взаимодействии с postgres после первоначального соединения?
База данных (ов) будет использоваться в веб-приложении, и я бы хотел использовать правила уровня базы данных для таблиц и схем с пулом соединений. Из чтения документации postgresql появляется возможность переключения ролей, если я первоначально подключаюсь как пользователь с ролью суперпользователя, но я бы предпочел сначала подключиться как пользователь с минимальными разрешениями и переключиться по мере необходимости. При необходимости указать пароль пользователя при переключении будет нормально (на самом деле я бы предпочел).
Что мне не хватает?
Обновление. Я пробовал как SET ROLE
, так и SET SESSION AUTHORIZATION
, как было предложено @Milen, однако ни одна из команд не работает, если пользователь не является суперпользователем:
$ psql -U test
psql (8.4.4)
Type "help" for help.
test=> \du test
List of roles
Role name | Attributes | Member of
-----------+------------+----------------
test | | {connect_only}
test=> \du test2
List of roles
Role name | Attributes | Member of
-----------+------------+----------------
test2 | | {connect_only}
test=> set role test2;
ERROR: permission denied to set role "test2"
test=> \q