为 postgres 副本创建只读用户

Jch*_*ase 4 postgresql database-replication

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

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

CREATE ROLE readaccess;
ERROR:  cannot execute CREATE ROLE in a read-only transaction
Run Code Online (Sandbox Code Playgroud)
\password postgres
ERROR:  cannot execute ALTER ROLE in a read-only transaction
Run Code Online (Sandbox Code Playgroud)

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

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

谢谢。

Chr*_*vey 5

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

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

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