【问题标题】:postgres AWS RDS - failed to create replication userspostgres AWS RDS - 无法创建复制用户
【发布时间】:2020-05-20 12:05:10
【问题描述】:

我是 postgres 的新手。 我创建了一个 postgres amazon RDS 数据库。 创建后,我通过“postgres”登录名和创建 RDS 时提供的主密码连接到实例。

我正在尝试运行此命令

CREATE ROLE ohdsi_admin
  CREATEDB REPLICATION
   VALID UNTIL 'infinity';
COMMENT ON ROLE ohdsi_admin
  IS 'Administration group for OHDSI applications';

收到此错误: 错误:必须是超级用户才能创建复制用户 SQL 状态:42501

但据我了解,我现在是超级用户,权限较弱(RDS 的原因) 我怎样才能使上述命令起作用?

【问题讨论】:

    标签: postgresql amazon-rds


    【解决方案1】:

    使用 AWS,您需要改为将 rds_replication 授予用户。

    例如

    CREATE ROLE ohdsi_admin;
    GRANT rds_replication TO ohdsi_admin;
    

    RDS 文档中也有相关信息:https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Appendix.PostgreSQL.CommonDBATasks.html

    【讨论】:

    • 感谢 Thom 的回复 :-) 但是是否可以使用 'replication' 而不是 'rds_replication' 角色?这两个角色的行为是否完全相同?
    • RDS 控制角色的方式不同于常规 PostgreSQL,因为它是其托管服务的一部分。 rds_replication 用于允许逻辑复制。如果您想要定期的流式复制,这将作为 RDS 服务的一部分进行管理,因此您无法将用户权限作为其中的一部分进行管理。
    • 非常感谢汤姆的回复。我设法解决了这个问题
    【解决方案2】:

    如果您在使用 Aurora 时遇到must be superuser to alter replication users,请了解SUPERUSERREPLICATION 属性不适用于您的主用户所属的组rds_superuser

    有一个名为 rdsadmin 的单独角色拥有所有权限,但 RDS 用户无法使用。

    只有使用 Pgsql v10(Aurora 中的 v10.6)提供的 CREATE PUBLICATIONCREATE SUBSCRIPTION 命令才能在 Aurora Pgsql 上进行复制。 ALTER USER some_user REPLICATION 不能使用旧方法。

    【讨论】:

      猜你喜欢
      • 2021-12-28
      • 2020-07-19
      • 2019-12-02
      • 2019-03-21
      • 2020-01-19
      • 1970-01-01
      • 1970-01-01
      • 2021-01-18
      • 2019-12-12
      相关资源
      最近更新 更多