Vastbase 需要的权限
本文介绍 Vastbase 作为源端或对端数据源迁移或同步数据时,CloudCanal 所需的账号权限。
作为源端
全量迁移
- 迁移库表的 SELECT、REFERENCES 权限。
-- 以下为示例,请替换<>中的内容
-- 创建同步用户
CREATE USER <your_account> WITH PASSWORD '<your_password>';
-- 授权同步用户需要同步的 SCHEMA 权限
GRANT SELECT,REFERENCES ON ALL TABLES IN SCHEMA <target_schema> TO <your_account>;
增量同步
- 同步数据库的 CREATE 权限。
- 同步表的 OWNER 权限。
- 同步用户的 REPLICATION 权限。
-- 以下为示例,请替换<>中的内容
-- 创建同步用户
CREATE USER <your_account> WITH PASSWORD '<your_password>';
-- 授权同步用户同步表 owner 的角色
GRANT <owner_role> TO <your_account>;
-- 开启同步用户的 REPLICATION
ALTER USER <your_account> REPLICATION;
作为对端
全量迁移/增量同步
- 迁移库表的 INSERT、UPDATE、DELETE、DDL 权限。
更多设置
最小化权限
当同步用户不是表的 OWNER,也没有被授予表 OWNER 角色时,依然可以通过以下方式实现增量同步。
-
同步用户的 REPLICATION 权限。
-- 以下为示例,请替换<>中的内容
-- 创建具备 REPLICATION 权限的用户
CREATE USER <your_account> WITH PASSWORD <your_password> REPLICATION;
-- 允许连接数据库
GRANT CONNECT ON DATABASE postgres TO <your_account>;
-- 允许访问 schema
GRANT USAGE ON SCHEMA public TO <your_account>;信息此账号可用于 CloudCanal 连接数据库执行逻辑复制,但无法修改表结构或创建 publication。
-
由表的 OWNER 或 高权限用户 执行以下操作
-- 以下为示例,请替换<>中的内容
-- 开启全字段变更捕获(避免 UPDATE/DELETE 时缺少非主键列值)
ALTER TABLE <your_schema>.<your_table> REPLICA IDENTITY FULL;
-- 创建 Publication,用于增量同步
-- 命名规则:<任务名> + "_increment"
-- 例如任务名 canalo1r7j9115mt,则 publication 名称为 canalo1r7j9115mt_increment
CREATE PUBLICATION <your_datajob_name>_increment FOR TABLE <your_schema>.<your_table>;
同步 DDL
如在创建任务第二步勾选了 同步 DDL ,或未来需要同步 DDL,则需要创建以下触发器