我一直在阅读有关设置PG参数的文档。我了解postgresql.conf
和postgresql.auto.conf
的行为,尤其是对于ALTER SYSTEM
变体和这些群集范围默认值的SUPERUSER
要求。
我最近遇到ALTER ROLE SET
,它允许普通用户设置USER上下文设置并对其进行持久化(更改在下一次登录时首次看到,仅在登录时才更新)。这些值正确地不会出现在上面的.conf
文件中-但是必须将它们保存在某个位置,因为它们会保留到以后的会话中。 pg_settings
确实反映了登录后设置列中的更改,但是源仍然是用户,因此无法断定它来自ROLE上的持久值,而不是某些会话持续时间设置。
这些ALTER ROLE SET
值保存在哪里?如果执行ALTER ROLE SET
,是否可以保证服务器重新启动还是PITR保留此更改?为何来源没有反映出类似于“角色”这样的区别?
答案 0 :(得分:0)
此信息保存在pg_db_role_setting
目录中。
因此,这些更改是持久的。
pg_settings
会将source
显示为user
,这是您需要的所有信息,因为必须在current_user
上进行设置。