文档数据库服务 DDS-通过数据复制服务迁移数据:数据库账号权限要求

时间:2023-11-08 16:32:47

数据库账号权限要求

在使用DRS进行迁移时,连接源库和目标库的数据库账号需要满足以下权限要求,才能启动实时迁移任务。不同类型的迁移任务,需要的账号权限也不同,详细可参考表3进行赋权。DRS会在“预检查”阶段对数据库账号权限进行自动检查,并给出处理建议。

  • 建议创建单独用于DRS任务连接的数据库账号,避免因为数据库账号密码修改,导致的任务连接失败。
  • 连接源和目标数据库的账号密码修改后,请尽快修改DRS任务中的连接信息,避免任务连接失败后自动重试,导致数据库账号被锁定影响使用。
表3 数据库账号权限

类型名称

全量迁移

全量+增量迁移

源数据库连接账号

  • 副本集:连接源数据库的用户需要有admin库的readAnyDatabase权限。
  • 单节点:连接源数据库的用户需要有admin库的readAnyDatabase权限。
  • 集群:连接源数据库的用户需要有admin库的readAnyDatabase权限,有config库的read权限。
  • 如果需要迁移源数据库用户和角色信息,连接源数据库和目标库数据库的用户需要有admin数据库的系统表system.users、system.roles的read权限。
  • 副本集:连接源数据库的用户需要有admin库的readAnyDatabase权限,有local库的read权限。
  • 单节点:连接源数据库的用户需要有admin库的readAnyDatabase权限,有local库的read权限。
  • 集群:连接源数据库mongos节点的用户需要有admin库的readAnyDatabase权限,有config库的read权限,连接源数据库分片节点的用户需要有admin库的readAnyDatabase权限,有local库的read权限。
  • 如果需要迁移源数据库用户和角色信息,连接源数据库和目标库数据库的用户需要有admin数据库的系统表system.users、system.roles的read权限。

目标数据库连接账号

连接目标数据库的用户需要有admin库的dbAdminAnyDatabase权限,有目标数据库的readWrite权限。

对于目标数据库是集群的实例,迁移账号还要有admin库的clusterManager权限。

用户赋权参考语句:如连接源数据库的用户需要有admin库的readAnyDatabase权限和config库的read权限。

db.grantRolesToUser("用户名",[{role:"readAnyDatabase",db:"admin"}, {role:"read",db:"config"}])
support.huaweicloud.com/usermanual-dds/dds_03_0056.html