gpt4 book ai didi

database - 让 PostgreSQL BDR 在没有 super 用户(postgres 用户)权限的情况下工作?

转载 作者:搜寻专家 更新时间:2023-10-30 20:26:17 29 4
gpt4 key购买 nike

我们在工作中从 MongoDB 切换到 Postgres,我正在建立一个 BDR 组。

在这一步,我正在考虑安全性并尽可能锁定。因此,我希望设置一个 replication 用户(角色)并让 BDR 使用它来进行复制。当使用受信任的连接或 postgres 用户进行身份验证时,我已经让该组愉快地运行。两者对我来说似乎都不是 100% 安全的,而且我特别不喜欢 postgres 用户的密码如何以明文形式出现在 bdr.bdr_nodes 的 DSN 连接字符串中。所以我尝试使用这个 replication 用户来代替。

也就是说,例如在 pg_hba.conf 中:

hostssl appdb,replication replication 172.17.1.2 md5

和匹配的DSN连接字符串,

host=172.17.1.1 dbname=appdb user=replication password=secret

在发出 bdr.bdr_group_create 时出现以下错误说明了此方法的问题:

ERROR:  local dsn does not have superuser rights
DETAIL: The dsn 'host=172.17.1.1 dbname=appdb user=replication password=secret' connects successfully but does not grant superuser rights

这就是我有点困惑的地方。 BDR 真的需要 super 用户权限才能进行复制吗?或者我可以授予我的 replication 角色特定权限,使其能够在不全能的情况下开展业务吗?

也许只是我偏执,但我觉得 postgres 用户应该只用于系统管理员的东西,而且它的密码绝对不应该以明文形式出现在表格中DSN 连接字符串,即使您需要特殊权限才能从所述表中读取。

最佳答案

此时您不能在没有 super 用户连接的情况下使用 BDR 进行复制。逻辑解码需要它。我们希望在 BDR 的 9.6 版中解决这个问题。

在走这条路之前,请非常仔细考虑您是否真的需要多主机。您确定带有只读副本的事件/备用设置不足以满足您的需求吗?请仔细阅读有关 BDR 的限制和其他应用程序开发注意事项的手册部分。

关于database - 让 PostgreSQL BDR 在没有 super 用户(postgres 用户)权限的情况下工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32346768/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com