postgresql - 为 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”的密码?
注意:我确实意识到对于副本,您可以(或应该)只有只读访问权限。
谢谢你。
解决方案
正如您所发现的,副本无论如何都是只读的。所以你有几个选择。
- 只需使用主帐户中的任何帐户即可。他们将对副本具有相同的权限(除了他们不能更改数据)。
- 创建一个仅对主节点具有“选择”权限的特殊用户,该用户流向副本。
至于在主副本和副本上有不同的密码,你不能。如果这对您来说是一个硬性要求,您将不得不研究“逻辑复制”。
推荐阅读
- java - 如何设置列表
- > 在 Java 中
- javascript - 如何在 JavaScript 中延迟突变观察者?
- reactjs - React 事件处理程序的附加参数(使用功能组件)
- apache-spark - PySpark 正在编写大型单个 Parquet 文件而不是分区文件
- python - 从其他目录导入 python 模块时出现问题?
- php - 为什么交易中的资金没有自动转入账户?
- c - 为什么他跳过第二次 scanf 的阅读
- reactjs - 如何在打字稿中支持顶级等待?
- python - 如何在没有来自代码的 cookie 的情况下上网
- python - For循环将字符串列表添加到NetCDF变量,仅添加最后一个值问题