如何正确设置启动Postgres复制的权限?

问题描述 投票:0回答:2

我正在尝试遵循 Postgres 的 Debezium 教程并设置复制用户。我正在创建复制用户,如下所示:

CREATE ROLE replication_role WITH REPLICATION LOGIN;

CREATE USER debezium WITH PASSWORD 'my-secret-pw';

GRANT replication_role TO debezium;

CREATE ROLE replication_group WITH LOGIN;

GRANT replication_group TO postgres;

GRANT replication_group TO debezium;

ALTER TABLE person OWNER TO replication_group;

它设置复制用户如下:

                                                     List of roles
     Role name     |                         Attributes                         |              Member of               
-------------------+------------------------------------------------------------+--------------------------------------
 debezium          |                                                            | {replication_role,replication_group}
 postgres          | Superuser, Create role, Create DB, Replication, Bypass RLS | {replication_group}
 replication_group |                                                            | {}
 replication_role  | Replication                                                | {}

当我尝试启动 Postgres 源连接器时,出现如下错误:

io.debezium.DebeziumException: Creation of replication slot failed
...
Caused by: org.postgresql.util.PSQLException: FATAL: must be superuser or replication role to start walsender

如何解决权限问题以便我可以开始从 Postgres 进行复制?

postgresql apache-kafka-connect debezium
2个回答
1
投票

复制属性不被继承。该属性必须直接在将使用它的角色上设置。你说你正在遵循教程,但据我所知,你没有。您似乎混淆了创建出版物所需的权限/属性与流式传输出版物所需的权限/属性。


0
投票
ALTER USER debezium REPLICATION;
© www.soinside.com 2019 - 2024. All rights reserved.