【问题标题】:ALTER ROLE SET settings locationALTER ROLE SET 设置位置
【发布时间】:2018-11-28 23:18:59
【问题描述】:

我一直在阅读有关设置 PG 参数的文档。我了解postgresql.confpostgresql.auto.conf 的行为,尤其是ALTER SYSTEM 变体和SUPERUSER 对这些集群范围默认值的要求。

我最近遇到了ALTER ROLE SET,它允许普通用户设置 USER 上下文设置并保持它们(更改首先在下次登录时看到,并且仅在登录时更新)。这些值正确地没有出现在上述.conf 文件中 - 但它们必须保存在某个地方,因为它们会持续到未来的会话中。 pg_settings 确实反映了登录后设置列中的更改,但来源仍然是用户,因此无法判断它来自 ROLE 上的持久值,而不是某些会话持续时间设置。

这些ALTER ROLE SET 值保存在哪里?如果ALTER ROLE SET 执行,是否保证如果服务器重新启动或PITR'd 保持此更改?为什么来源不反映“角色”之类的区分?

【问题讨论】:

    标签: postgresql psql postgresql-10 postgresql-11


    【解决方案1】:

    此信息保存在pg_db_role_setting 目录中。

    因此,这些变化是持久的。

    pg_settings 会将source 显示为user,这是您需要的所有信息,因为它必须在current_user 上设置。

    【讨论】:

      猜你喜欢
      • 2017-03-19
      • 1970-01-01
      • 1970-01-01
      • 2018-08-16
      • 1970-01-01
      • 2023-04-03
      • 1970-01-01
      • 2022-01-24
      • 1970-01-01
      相关资源
      最近更新 更多