源数据库用户权限是否足够
MySQL迁移场景
预检查项 |
源数据库用户权限是否足够。 |
---|---|
描述 |
检查用户提供的源数据库账号权限是否符合迁移要求,全量迁移和增量迁移时,所需源数据库账号权限不同。
若权限不够,会导致迁移失败。 |
不通过提示及处理建议 |
不通过原因:连接源数据库的用户权限不足,全量迁移时需要具备SELECT、SHOW VIEW、EVENT这些权限。 处理建议:为缺失权限的数据库添加权限。 |
不通过原因:连接源数据库的用户权限不足,增量迁移时需要具备SELECT、SHOW VIEW、EVENT、LOCK TABLES、REPLICATION SLAVE、REPLICATION CLIENT这些权限,如果是灾备场景还需具备CREATE、ALTER、DROP、DELETE、INSERT、UPDATE、INDEX权限。 处理建议:为缺失权限的数据库添加权限。 |
|
不通过原因:用户基本权限不足。 处理建议:查看对应数据库账号权限是否符合迁移要求。
说明:
DRS要求的MySQL权限以及授权操作,请参见DRS要求的MySQL权限有哪些。 |
PostgreSQL同步场景
预检查项 |
源数据库用户权限是否足够。 |
---|---|
描述 |
不同类型的同步任务,需授予同步账户不同权限。
若权限不够,会导致迁移失败。 |
不通过提示及处理建议 |
不通过原因:源数据库连接失败,导致该项检查无法进行。 处理建议:查看源数据库连接是否成功。 |
不通过原因:用户基本权限不足。 处理建议:查看对应的数据库账号权限是否符合迁移要求。 |
|
不通过原因:连接源数据库的用户权限不足,全量迁移时需要具备SELECT、REFERENCES、TRIGGER、EXECUTE和USAGE权限。 处理建议:更换迁移帐号或者对迁移帐号进行授权。 |
|
不通过原因:没有复制权限,需要在配置文件pg_hba.conf配置允许迁移实例和迁移帐号进行复制连接的权限。 处理建议: 配置该帐号的复制连接权限。 打开配置文件pg_hba.conf,配置如下参数,重启数据库生效。 host replication XXX(dbuser) 0.0.0.0/0 method 完成迁移之后删除这条记录,重启数据库生效。 |
|
不通过原因:源数据库参数max_wal_senders取值太小。 处理建议:建议将配置文件postgresql.conf中的max_wal_senders参数值增大,如+5,+10等等。 |
|
不通过原因:数据库不可用。 处理建议:请联系技术支持人员处理。 |
|
待确认提示及处理建议 |
待确认原因:源数据库中存在只有SUPERUSER用户才能创建的对象,而目标库连接用户不是SUPERUSER用户,这些对象将被忽略。 处理建议:使用SUPERUSER用户连接目标库,或确认这些对象可以被忽略。 |
MongoDB迁移场景
预检查项 |
源数据库用户权限是否足够。 |
---|---|
描述 |
检查用户提供的源数据库账号权限是否符合迁移要求,若权限不够,会导致迁移失败。 |
不通过提示及处理建议 |
不通过原因:源数据库连接失败,导致该项检查无法进行。 处理建议:查看源数据库连接是否成功。 |
不通过原因:连接源数据库的用户权限需要有admin库的readAnyDatabase权限和local库的read权限。 处理建议:为连接源数据库的用户赋权,参考: db.grantRolesToUser("用户名",[{role:"readAnyDatabase",db:"admin"}, {role:"read",db:"local"}]) |
|
不通过原因:连接源数据库的用户权限需要有admin库的readAnyDatabase权限和config库的read权限。 处理建议:为连接源数据库的用户赋权,参考: db.grantRolesToUser("用户名",[{role:"readAnyDatabase",db:"admin"}, {role:"read",db:"config"}]) |
|
不通过原因:连接源数据库的用户权限不足,需要连接源数据库mongos节点的用户需要有admin数据库的readAnyDatabase权限,有config数据库的read权限,连接源数据库shard节点的用户需要有admin数据库的readAnyDatabase权限,有local数据库的read权限。 处理建议:为连接源数据库的用户赋权。
|
|
不通过原因:连接源数据库的用户权限需要有admin库的readAnyDatabase权限。 处理建议:为连接源数据库的用户赋权,参考: db.grantRolesToUser("用户名",[{role:"readAnyDatabase",db:"admin"}]) |
|
不通过原因:连接源数据库的用户权限需要有local库的read权限。 处理建议:为连接源数据库的用户赋权,参考: db.grantRolesToUser("用户名",[{role:"read",db:"local"}]) |
|
不通过原因:连接源数据库的用户权限需要有config库的read权限 处理建议:为连接源数据库的用户赋权,参考 db.grantRolesToUser("用户名",[{role:"read",db:"config"}]) |