为Postgres副本创建只读用户

4

我最近实施了流复制,并需要为副本创建一个“报告用户”。该用户将通过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”的密码?
注意:我意识到对于副本,您只能(或应该)拥有只读访问权限。
谢谢。
1个回答

5

正如您发现的那样,副本是只读的。因此,您有几个选择。

  1. 只需使用主数据库中的任何帐户即可。它们在副本上具有相同的权限(除了无法更改数据)。
  2. 创建一个特殊用户,在主数据库上仅具有“select”权限,并且该用户流经到副本。

如果您需要在主数据库和副本上使用不同的密码,则无法实现。如果这是您的硬性要求,您将需要考虑“逻辑复制”。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接