我正在尝试使用 compose transporter 将更改从 postgres 复制到 rabbitmq:
var source = postgres({
"uri": "postgres://admin:****@****.dblayer.com:17596/compose"
"debug": true,
"tail": true,
"replication_slot": "slot"
})
var sink = rmq = rabbitmq({
"uri": "amqps://transporter:****@****.composedb.com:17597/****",
"routing_key": "test",
"key_in_field": false
// "delivery_mode": 1, // non-persistent (1) or persistent (2)
// "api_port": 15672,
// "ssl": false,
// "cacerts": ["/path/to/cert.pem"]
})
t.Source(source).Save(sink)
错误:
INFO[0001] Listening for changes... db=compose logical_decoding_slot=slot
ERRO[0002] error plucking from logical decoding pq: must be superuser or replication role to use replication slots db=compose
如何使用超级用户或复制角色设置 Postgres 用户?这似乎在撰写上是不允许的?
ALTER USER admin WITH REPLICATION;
结果是:
ERROR: must be superuser to alter replication users
另请注意:
我可以创建一个“超级用户”吗?
PostgreSQL 允许创建超级用户。作为超级用户意味着能够绕过数据库内的所有访问权限检查,因此不应轻易授予超级用户权限。出于安全考虑,我们不允许创建超级用户。