【发布时间】:2015-09-02 07:14:12
【问题描述】:
我们在工作中从 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 真的需要超级用户权限来进行复制吗?或者我是否可以向我的replication 角色授予特定权限,使其能够在不全能的情况下开展业务?
也许只是我偏执,但我觉得postgres 用户应该只用于系统管理员的东西,而且它的密码绝对不应该出现在明文 DSN 连接字符串的表中,即使如果您需要特殊权限才能从所述表中读取。
【问题讨论】:
标签: database postgresql replication postgresql-bdr