在初始连接后与postgres交互时,是否可以更改用户正在使用的postgresql角色?
该数据库将在Web应用程序中使用,我想在具有连接池的表和模式上采用数据库级规则。通过阅读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