首页 > 解决方案 > 为 postgres 副本创建只读用户

问题描述

我最近实现了流复制,需要为副本创建一个“报告用户”。此用户将用于通过 ODBC 访问数据库以生成报告。

在从属(副本数据库)上,似乎我无法创建新用户。我还需要更改从站上“postgres”用户的密码。这是我尝试过的以及我得到的错误:

CREATE ROLE readaccess;
ERROR:  cannot execute CREATE ROLE in a read-only transaction
\password postgres
ERROR:  cannot execute ALTER ROLE in a read-only transaction

如何为我的副本创建新的只读用户?如何更改副本上用户“postgres”的密码?

注意:我确实意识到对于副本,您可以(或应该)只有只读访问权限。

谢谢你。

标签: postgresqldatabase-replication

解决方案


正如您所发现的,副本无论如何都是只读的。所以你有几个选择。

  1. 只需使用主帐户中的任何帐户即可。他们将对副本具有相同的权限(除了他们不能更改数据)。
  2. 创建一个仅对主节点具有“选择”权限的特殊用户,该用户流向副本。

至于在主副本和副本上有不同的密码,你不能。如果这对您来说是一个硬性要求,您将不得不研究“逻辑复制”。


推荐阅读